diff --git a/.gitignore b/.gitignore index accde2d06..5348dfbff 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,9 @@ bin/*.xml bin/log.txt bin/CompilerController.ini +**/_vti_cnf +**/_vti_pvt + TestSuite/CompilationSamples/*.pcu TestSuite/CompilationSamples/*.pdb TestSuite/CompilationSamples/*.exe diff --git a/PABCNetHelp/01_decodemnemonics.pas b/PABCNetHelp/01_decodemnemonics.pas new file mode 100644 index 000000000..76adcbb4d --- /dev/null +++ b/PABCNetHelp/01_decodemnemonics.pas @@ -0,0 +1,50 @@ +uses System.Collections.Generic; + +var + mnem,f,f1: text; + d := new Dictionary; + c: char; + s: string; + +function Convert(s: string): string; +begin + foreach x: KeyValuePair in d do + begin + var p := Pos(x.Key,s); + while p>0 do + begin + Delete(s,p,Length(x.Key)); + Insert(x.Value,s,p); + p := Pos(x.Key,s); + end; + end; + Result := s; +end; + +begin + assign(mnem,'mnemonicsrus.txt'); + reset(mnem); + for c:='а' to 'я' do + begin + readln(mnem,s); + d.Add(Trim(s),c); + end; + for c:='А' to 'Я' do + begin + readln(mnem,s); + d.Add(Trim(s),c); + end; + close(mnem); + assign(f,'Table of Contents.hhc'); + assign(f1,'Table of Contents New.hhc'); + reset(f); + rewrite(f1); + while not eof(f) do + begin + readln(f,s); + s := Convert(s); + writeln(f1,s); + end; + close(f); + close(f1); +end. \ No newline at end of file diff --git a/PABCNetHelp/02_collectKeywords.pas b/PABCNetHelp/02_collectKeywords.pas new file mode 100644 index 000000000..c39cca338 --- /dev/null +++ b/PABCNetHelp/02_collectKeywords.pas @@ -0,0 +1,54 @@ +var dict := new Dictionary; + +procedure CollectInDir(path: string); +begin + var ff := System.IO.Directory.EnumerateFiles(path,'*.html'); + foreach f: string in ff do + begin + var l := new List; + ReadLines(f).ForEach( + procedure(s) -> + begin + if s.Contains('name="Keyword"') then + begin + var p := s.IndexOf('value="'); + var q := s.IndexOf('"',p+8); + l.Add(Copy(s,p+8,q-p-7)); + end; + end); + if l.Count>0 then + begin + dict[f.Substring(2)] := l.JoinIntoString('`\')+'`\'; + end; + end; + var dd := System.IO.Directory.EnumerateDirectories(path); + foreach d: string in dd do + CollectInDir(d); +end; + +begin + CollectInDir('.'); + //dict.Println(NewLine); + + var f := ReadLines('WinChmWebHelp\Table of Contents.wcp',Encoding.UTF8); + + var name := ''; + + f := f.Select(s->begin + if s.StartsWith('TitleList.Url') then + begin + var p := s.IndexOf('='); + name := s.Substring(p+1); + end; + if s.StartsWith('TitleList.Keywords') then + begin + var p := s.IndexOf('='); + if dict.ContainsKey(name) then + begin + s := s.Substring(0,p+1)+dict[name]; + end; + end; + Result := s; + end); + WriteLines('WinChmWebHelp\Table of Contents.wcp',f.ToArray,new System.Text.UTF8Encoding(false)); +end. \ No newline at end of file diff --git a/PABCNetHelp/Common/AdvantagePABC.html b/PABCNetHelp/Common/AdvantagePABC.html new file mode 100644 index 000000000..6a482f9b3 --- /dev/null +++ b/PABCNetHelp/Common/AdvantagePABC.html @@ -0,0 +1,92 @@ + + + + + + + + + +

PascalABC.NET

+

Object Pascal

+

PascalABC.NET +, Delphi. , + . PascalABC.NET + , - , + , +.

+

, PascalABC.NET , + .NET: , , , +, , , (generics), +, -.

+

PABCSystem, , + , + .

+

PascalABC.NET .NET- +, . + PascalABC.NET , +Web, XML-, . 

+

PascalABC.NET + , - + . + - , + - .

+

, + PascalABC.NET + ( + ), - + .

+

+

PascalABC.NET + . + , + , Intellisense ( , +, ), +, , .

+

PascalABC.NET , + RAD (Rapid +Application Development - ).

+

, +PascalABC.NET + . + " - +".

+

PascalABC.NET + : +, - , - +, . + - .

+

PascalABC.NET + , + , .

+

, PascalABC.NET + + +.

+

+

Microsoft.NET PascalABC.NET + , + : . +PascalABC.NET + .

+

, PascalABC.NET, + .

+

+ , + .

+

, PascalABC.NET + Programming +Taskbook ( ..), + . , + , .

+

GraphABC +ABCObjects . + , .

+

"" : Collections + , Arrays + Forms + .

+

 

+ + + diff --git a/PABCNetHelp/Common/Net.html b/PABCNetHelp/Common/Net.html new file mode 100644 index 000000000..7a1b4cdd0 --- /dev/null +++ b/PABCNetHelp/Common/Net.html @@ -0,0 +1,124 @@ + + + + + + + + + +

.NET

+

Microsoft .NET - +, + , .NET. +.NET- , + . Microsoft +.NET, +. 2015 . +.NET 4.5.

+

.NET- , + -, ( +.NET IL- + . Intermediate Language - ). - + . +, IL-, + , . + , JIT- +(Just In Time - ), + .NET- + ( +), + . , + .

+

, + . -, JIT- + , , + . , + . -, +IL- - , , + - . - newobj + , callvirt + throw .

+

.NET + - exe + dll. IL-, + . , + , + .

+

"" .NET- +C#: .NET + . .NET- + , (CTS +- Common Type System - ). + (, , ) + .NET-. +, , dll + C#, , + PascalABC.NET, + . PascalABC.NET, + Visual Basic.NET. +, + dll , +, .

+

, +.NET, - + , - + , . , , +, .

+

, + IL- +(, ILSpy).

+

JIT-, + .NET (FCL +- Foundation Class Library - ). + - , , , XML, +, , . .NET- + .

+

+Microsoft.NET - +Mono, + .NET- Linux.

+

.NET.

+

.NET

+
    +
  1. .NET + .NET-. C#, + Visual Basic.NET, F#, + C++, + Delphi Prism, Oberon, Zonnon, +  Iron Python, Iron Ruby, PascalABC.NET.
  2. +
  3. .NET- + : , , , , +, .
  4. +
  5. .NET- , + .
  6. +
  7. FCL.
  8. +
  9. .NET- .
  10. +
  11. .NET + Microsoft, , + .
  12. +
  13. .NET- , + .
  14. +
+

.NET

+
    +
  1. .NET- + , + .
  2. +
  3. .NET- + (, , + - .NET + ).
  4. +
  5. + , . + .
  6. +
  7. .NET- + .NET. + (, Windows Vista + Windows 7 .NET ).
  8. +
+

, .NET + .

+ + + diff --git a/PABCNetHelp/Common/PABCNETvsDelphi.html b/PABCNetHelp/Common/PABCNETvsDelphi.html new file mode 100644 index 000000000..21113ce9e --- /dev/null +++ b/PABCNetHelp/Common/PABCNETvsDelphi.html @@ -0,0 +1,109 @@ + + + + + + + + + +

PascalABC.NET Delphi

+

+
    +
  1. += -= .NET + .
  2. +
  3. += -= *=   + += -= *= /= + .
  4. +
  5. += .
  6. +
  7. .
  8. +
  9. new (ident := new type_name(params);).
  10. +
  11. new .
  12. +
  13. typeof .
  14. +
  15. uses + .NET ( + Delphi Prism).
  16. +
  17. internal ( public, + private, protected).
  18. +
  19. : var a: integer := + 1;
  20. +
  21. : var a := + 1;
  22. +
  23. .
  24. +
  25. : for var + i := 1 to 10 do, foreach + var x in a do.
  26. +
  27. lock, .
  28. +
  29. .
  30. +
  31. .
  32. +
  33. (generics).
  34. +
  35. ( + Delphi Prism, ).
  36. +
  37. .
  38. +
  39. .
  40. +
  41. .
  42. +
  43. .
  44. +
  45. -.
  46. +
+

+
    +
  1. .
  2. +
  3. foreach.
  4. +
  5. interface .NET.
  6. +
  7. .
  8. +
  9. . + TClass.
  10. +
  11. + .
  12. +
  13. object - + System.Object.
  14. +
  15. exception - + System.Exception.
  16. +
  17. string 1, 0.
  18. +
  19. write + .
  20. +
  21. , , + + ( Delphi Object + Pascal - + ).
  22. +
  23. (set of + string).
  24. +
  25. .
  26. +
  27. () procedure of + object.
  28. +
  29. file + read, + write.
  30. +
  31. ( , + a[i][j] a[i,j] ).
  32. +
  33. overload.
  34. +
  35. Create.
  36. +
  37. ( + ).
  38. +
+

+
    +
  1. packed threadvar inline asm exports library unsafe resourcestring dispinterface in out absolute dynamic + local platform requires abstract export message resident assembler safecall + automated far near stdcall cdecl published stored contains implements + varargs default deprecated package register dispid pascal writeonly + .
  2. +
  3. : Char(b) + := 'd'.
  4. +
  5. pointer.
  6. +
  7. .
  8. +
  9. PChar.
  10. +
  11. @ .
  12. +
  13. .
  14. +
  15. (var a; + const b).
  16. +
  17. ( !).
  18. +
  19. , (message).
  20. +
  21. .
  22. +
  23. .
  24. +
  25. - .
  26. +
+ + + diff --git a/PABCNetHelp/Common/features.html b/PABCNetHelp/Common/features.html new file mode 100644 index 000000000..e7e4ebfad --- /dev/null +++ b/PABCNetHelp/Common/features.html @@ -0,0 +1,283 @@ + + + + + + + + + + + + + + + + +

+

+ PascalABC.NET.

+
    +
  • PascalABC.NET + , , + , . + PascalABC.NET + , + .
  • +
  • PascalABC.NET + . Delphi + C#.
  • +
  • PascalABC.NET Microsoft .NET - + , , , + . , , PascalABC.NET + .NET-.
  • +
  • PascalABC.NET , , + C#, , + C++ Delphi.
  • +
  • PascalABC.NET + Delphi XE Oxygene.
  • +
  • , + , + (, Free Pascal + Delphi + 2002 ). , + , + , + Turbo Pascal + , + - , + .
  • +
  • PascalABC.NET + , .
  • +
  • PascalABC.NET . + Pascal ABC 2002 . PascalABC.NET . , .
  • +
+

, + PascalABC.NET. 

+

( +C:\PABCWork.NET) Samples\!MainFeatures.

+

+ "/ " , + PascalABC.NET.

+

+
    +
  1. AssignExt.pas. + += -= + *= /= . /= , , +.
  2. +
  3. BlockVar.pas. + begin-end + . + , PascalABC.NET + 30.
  4. +
  5. AutoVars.pas. , + : ( ). - for + , .
  6. +
  7. SimpleNewFeatures.pas. , + .
  8. +
  9. WriteAll.pas. write + . + , . , + .
  10. +
  11. WriteFormat.pas. WriteFormat + . + .NET.
  12. +
  13. StandardTypes.pas. + . .
  14. +
  15. RandomDiap.pas. + Random(a,b), + [a,b]. + Randomize .
  16. +
  17. RealExtNums.pas. .NET + . ( 0, + ) + "", "NaN" ( ).
  18. +
  19. Foreach.pas. + foreach + , , + (, List<T>). + .
  20. +
  21. Amp.pas. , + & + . , + . , &Type + System.Type.
  22. +
+

+
    +
  1. CharFunc.pas. Char Unicode 2 . Ord Chr , + , (, + Windows-). + Unicode + OrdUnicode + ChrUnicode.
  2. +
  3. StringTypes.pas. string + .NET- System.String. , + NET- 1. + + string[n] shortstring=string[255]. + , .
  4. +
  5. StringMethods.pas. string + .NET-. + , .
  6. +
  7. StringInteger.pas. - . . + + Parse (, + integer.Parse(s)). + ToString + (, r.ToString).
  8. +
  9. Enum.pas. + , .. + , - System.Enum.
  10. +
  11. Sets.pas. . + -, + write .
  12. +
  13. DynArray.pas. array of + T . + + SetLength, + new T[n]. SetLength + . , + System.Array, + . + &Array.Sort &Array.Resize.
  14. +
  15. InitRecords.pas. . + -.
  16. +
  17. UntypedFile.pas. file Delphi. + BlockRead + BlockWrite, + . + .
  18. +
  19. PointerToRef.pas. . + , , + .
  20. +
  21. Pointers.pas References.pas. . + .
  22. +
  23. StructTypeEquiv.pas. Delphi, + , + . , + , , . +
  24. +
+

+
    +
  1. FuncParams.pas. + params + - . + .
  2. +
  3. Overload.pas. + overload.
  4. +
  5. ProcVars.pas. "" + +=. + -=. + , .
  6. +
  7. SwapT.pas. + : procedure + Swap<T>(var x,y: T);
  8. +
+

+
    +
  1. SystemUnitTest.pas. PABCSystem, System, + Delphi, + uses. , + .NET + System. + System, + Math Utils + Delphi. + PABCSystem + System.
  2. +
  3. MainProgram.pas + MyUnit.pas. ( + ), + . + .
  4. +
  5. SystemUnitTest.pas. .NET + , : + .NET uses. + , Delphi - + uses, + PABCSystem .
  6. +
  7. Main.pas + MyDll.pas. PascalABC.NET + dll. dll - + , unit + library. + dll + reference.
  8. +
  9. CallCS.pas. PascalABC.NET - + .NET-, + .NET-. , +  PascalABC.NET dll, + C#.
  10. +
  11. CallNative.pas. PascalABC.NET + dll.
  12. +
+

+
    +
  1. GraphABCTest.pas. + GraphABC . + : + + . , - + , , , + NET. + begin , + .
  2. +
  3. MouseEvents.pas. + , + .
  4. +
  5. ABC.pas. ABCObjects + - + . , + - .
  6. +
+

+
    +
  1. AllFromObject.pas. - Object, - . + , + GetType. typeof System.Type.
  2. +
  3. WriteRecord.pas. ToString + , + writeln
  4. +
  5. ClassConstructor.pas. + class. + .
  6. +
  7. PersonInternal.pas. + new . + , , + Create. + ( C++, C# + Java)
  8. +
  9. Records.pas. , + . .
  10. +
  11. Boxing.pas. Object . + .
  12. +
  13. GarbageCollection.pas. . + , , , + , . + nil. +
  14. +
  15. OperatorOverloading.pas. C++ C#, PascalABC.NET + .
  16. +
  17. Interf.pas. + C# Java. + Delphi + COM .
  18. +
  19. Stack.pas. (generics) + , .
  20. +
  21. Where.pas. . + : - + , .
  22. +
+

.NET

+
    +
  1. DateTime.pas. DateTime + .NET.
  2. +
  3. LinkedList.pas. + .NET.
  4. +
  5. WinFormWithButton.pas. .
  6. +
+ + + \ No newline at end of file diff --git a/PABCNetHelp/Common/main.html b/PABCNetHelp/Common/main.html new file mode 100644 index 000000000..628e08784 --- /dev/null +++ b/PABCNetHelp/Common/main.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + +

PascalABC.NET

+ +

PascalABC.NET + + Pascal Microsoft .NET. + PascalABC.NET + + : +, +, + , +, +, + , + , +-, + , + OpenMP. PascalABC.NET + , + .

+ +

1970 . + . 80- + Turbo Pascal + Borland, 90- + Delphi, + Windows. +Delphi - , + Object Pascal. Delphi 7 + Delphi Object Pascal + Delphi. + Object Pascal + open source Free +Pascal.

+

PascalABC.NET + : + Pascal , (Free Pascal), + , + +.

+

PascalABC.NET + Microsoft.NET, PascalABC.NET + + .NET-: C#, +Visual Basic.NET, C++, Oxygene . .NET + , + , , , + , .NET-. + , Microsoft.NET, + .

+

PascalABC.NET Delphi (Object Pascal). + Delphi, + . , + : , , +=, +-=, *=, /=, +, , + + , +set + , foreach, + for foreach + , + (generics), , , , - .

+

PascalABC.NET + RemObjects Oxygene (Object Pascal 21 ). + .NET: , + , Main, + . , +RemObjects Oxygene - + ( Visual Studio + IDE), .

+

PascalABC.NET + , ( , + , ), + , , +.

+

PascalABC.NET + PascalABCCompiler Team (web- +http://pascalabc.net).

+ + + diff --git a/PABCNetHelp/CreateHelp.bat b/PABCNetHelp/CreateHelp.bat new file mode 100644 index 000000000..200cf0bb9 --- /dev/null +++ b/PABCNetHelp/CreateHelp.bat @@ -0,0 +1,6 @@ +cd PABCSystemDocGen +!AllSteps.exe +cd .. +"C:\Program Files (x86)\HTML Help Workshop\hhc.exe" PascalABCNET.hhp +copy PascalABCNET.chm ..\bin\PascalABCNET.chm +copy PascalABCNET.chm ..\Release\PascalABCNET.chm \ No newline at end of file diff --git a/PABCNetHelp/Examples/GraphABC/NonBlinkAnim1.html b/PABCNetHelp/Examples/GraphABC/NonBlinkAnim1.html new file mode 100644 index 000000000..00433cbb8 --- /dev/null +++ b/PABCNetHelp/Examples/GraphABC/NonBlinkAnim1.html @@ -0,0 +1,41 @@ + + + + + + + + + + +

+ LockDrawing +Redraw : +
+
+uses GraphABC;
+begin
+  LockDrawing;
+  for var i:=1 to 500 do
+  begin
+    Window.Clear;
+    Brush.Color := clGreen;
+    Ellipse(i,100,i+100,200);
+    Redraw;
+    Sleep(1);
+  end;
+end.
+
+
+ +

: , +LockDrawing ( +), + , Redraw. +Redraw , + +.

+ + + + diff --git a/PABCNetHelp/Examples/GraphABCEvents/GEv1.html b/PABCNetHelp/Examples/GraphABCEvents/GEv1.html new file mode 100644 index 000000000..e7aee0e64 --- /dev/null +++ b/PABCNetHelp/Examples/GraphABCEvents/GEv1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +

+ : +
+
+uses GraphABC;
+
+procedure MouseDown(x,y,mb: integer);
+begin
+  MoveTo(x,y);
+end;
+
+procedure MouseMove(x,y,mb: integer);
+begin
+  if mb=1 then LineTo(x,y);
+end;
+
+begin
+  //    
+  OnMouseDown := MouseDown;
+  OnMouseMove := MouseMove
+end.
+
+
+ + + + diff --git a/PABCNetHelp/Examples/GraphABCEvents/GEv2.html b/PABCNetHelp/Examples/GraphABCEvents/GEv2.html new file mode 100644 index 000000000..f78807c40 --- /dev/null +++ b/PABCNetHelp/Examples/GraphABCEvents/GEv2.html @@ -0,0 +1,37 @@ + + + + + + + + + +

+ : + +
+
+uses GraphABC;
+
+procedure KeyDown(Key: integer);
+begin
+   case Key of
+  VK_Left:  Window.Left := Window.Left - 2;
+  VK_Right: Window.Left := Window.Left + 2;
+  VK_Up:    Window.Top := Window.Top - 2;
+  VK_Down:  Window.Top := Window.Top + 2;
+   end;
+end;
+
+begin
+  //    
+  OnKeyDown := KeyDown;
+end.
+
+
+ + + + + diff --git a/PABCNetHelp/Examples/Timers/Timer1.html b/PABCNetHelp/Examples/Timers/Timer1.html new file mode 100644 index 000000000..9a354908e --- /dev/null +++ b/PABCNetHelp/Examples/Timers/Timer1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +

+ 1 100 + 3 :
+
+uses Timers;
+
+procedure TimerProc;
+begin
+  write(1);
+end;
+
+
+begin
+  var t := new Timer(100,TimerProc);
+  t.Start;
+  Sleep(3000);
+end.
+
+
+ +

Sleep , + , + .

+ + + + diff --git a/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks1.html b/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks1.html new file mode 100644 index 000000000..4f033b07f --- /dev/null +++ b/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks1.html @@ -0,0 +1,166 @@ + + + + + + + + +

Begin3 Programming Taskbook

+
+

Begin3 , + - . + . +

+

Begin3. + a b. + S=a*b P=2*(a+b).

+

+PascalABC.NET.

+
+

1. + +PT4 + Task, + :

+
+ uses PT4;
begin
  Task('Begin3');
+
end.
+
+

, . + . +. + PT4Load, - : +

+
+ +
+

+ Begin3 Enter. + + Begin3.pas + PascalABC.NET +( C:\PABCWork.NET).

+

( F9), + :

+ + +
+ +
+ + + + +

( ), + -. +

+
+

2. +a b + , , read. + : +

+
+ uses PT4;
var a, b: integer;
+ begin

  Task('Begin3');
+  read(a, b);
+ end.
+
+

:

+ +
+ +
+ + + +

, + — a b +. , + +( ), , + , +. +

+
+

3. :

+
+ uses PT4;
var a, b: real;
+ begin

  Task('Begin3');
+  read(a, b);
+ end.
+
+

:

+
+ +
+ + +

, . + , + (, , , + , / ). +

+
+

4. + , :

+
+ uses PT4;
var a, b, S, P: real;
+ begin

  Task('Begin3');
+  read(a, b);
+   S := a * b;
+   P := 2 * (a + b);
+   write(P, S)
+ end.
+
+

:

+
+ +
+ + + +

, , , + . + + , .

+
+

5. +:

+
+ uses PT4;
var a, b, S, P: real;
begin

  Task('Begin3');
  read(a, b);
+   S := a * b;
+   P := 2 * (a + b);
+   write(S, P)
end.
+
+

:

+
+ +
+ + +

, + .

+
+

6. , + . +!:

+
+ +
+ +

! Begin3 + ! , + « (F2)», + , F2. + PascalABC.NET , + + Shift+Ctrl+R. +

+

 

+

 

+ + + + diff --git a/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks2.html b/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks2.html new file mode 100644 index 000000000..80bb0dfec --- /dev/null +++ b/PABCNetHelp/ForEducation/CheckedTasks/checkedtasks2.html @@ -0,0 +1,101 @@ + + + + + + + + +

a1

+
+

a1 , + . + . +

+ +

a1. .

+
+ +
+ + + +

.

+
+

1. + Robot + Task, + :

+
+ uses Robot;
begin
  Task('a1');
+
end.
+
+

, + + RBa1 ( RB +, ). ( F9), + :

+
+ +
+
+

2. + :

+
+ uses Robot;
begin
  Task('a1');
+   Right;Right;Right;Right;
end.
+
+

, Enter + + :

+
+ +
+

, + . + , .

+
+

3. + , +:

+
+ uses Robot;
begin
  Task('a1');
+   Right;Right;Right;Right;
+   Up;Up;Left;
end.
+
+

Enter + :

+
+ +
+

, , + Left , + .

+
+

4. + :

+ +
+ uses Robot;
begin
  Task('a1');
+   Right;Right;Right;Right;
+   Up;
+   Left;Paint;
+   Left;Paint;
+   Left;Paint;
+   Left;Paint;
+   Left;
+ end.
+
+ +
+ +
+

.

+

, + , +.

+

 

+ + + + diff --git a/PABCNetHelp/ForEducation/CheckedTasks/ctexam.html b/PABCNetHelp/ForEducation/CheckedTasks/ctexam.html new file mode 100644 index 000000000..8442b437f --- /dev/null +++ b/PABCNetHelp/ForEducation/CheckedTasks/ctexam.html @@ -0,0 +1,674 @@ + + + + + + + + + + + +

, +

+ + + +
+

1. +

+
+

ExamBegin , + . + , , + . +

+

ExamBegin2°. ; . + , . + : «MIN=» , «MAX=» + . +

+
+

- +

+

, - + + « | », + + Shift+Ctrl+L. : +

+
uses PT4Exam;
+
+begin
+  Task('ExamBegin2');
+
+end.
+
+

: +

+
+ +
+ +

- . +

+

- PT4 + PT4Exam, + Exam. Task, + . , -, . + , - Exam , + Pascal. +

+

, , + (, , + ). + , . , + , , + Pascal. , + «» ( ), + . +

+

+( «» , , , , + ), + : , + ( ). , + , , Pascal. +

+

+. + , , , + Exam + . . + Exam , + . + , , +, ( ). + , , -, + - Pascal. +

+
+

+

+

. , + , : +

+
uses PT4Exam;
+var
+  a, b, c: real;
+begin
+  Task('ExamBegin2');
+  read(a, b, c);
+end.
+
+

read, . + readln: +

+
readln(a, b, c);
+
+

, readln : +

+
readln(a);
+readln(b);
+readln(c);
+
+

+ . , + « » ( ), + «Input string was not in a correct format» +(« »). +

+

, Exam + read readln. +

+

, . + Exam , + . , , + (, + string, «» , + real). Exam, + . +

+

. + min max real : +

+
if a < b then
+begin
+  min := a;
+  max := b;
+end
+else
+begin
+  min := b;
+  max := a;
+end;
+if c < min then
+  min := c
+else
+  if c > max then
+    max := c;
+
+

, + . +

+ +
+

+

+

. , , + Pascal, . +

+

, , , . + : +

+
writeln(min, max);
+
+

: +

+ +
+ +
+ +

, , , + ( ). + : -, +( «», -), -, + , -, + ( ). +

+

+. , + , + , . : + , — , — + . , , + , , , + , + -. +

+

: +

+
writeln('MIN=', min);
+writeln('MAX=', max);
+
+

- . + + , «:» (): +

+
writeln('MIN=', min:0:2);
+writeln('MAX=', max:0:2);
+
+

( 0, + ). ( ) , + , . +

+

, + — , : +

+ +
+ +
+ + +

+ , + , . +

+ +

+. + PascalABC.NET, + , read-write + , + Exam. -, Exam + read-write readln-writeln ( - + «ln», ). -, + Exam , + , . -, + Exam , + ; , , + ( + ). +

+ + +
+

2. +

+
+ +

ExamBegin, + . +

+ +

ExamBegin28°. M N, + — D, — M . + M × N, + , + D ( + ). , + 7 . +

+ + +

-, , : +

+ +
+ +
+ + +

, , 8 , + . + , «» , + . , , + , , +( , ). + ; Ins + ( , ). + , :

+
+ +
+

, Ins ( +, — . ) «» + . , «» , + .

+ +

+ , + , , , . +

+ +

, , + . +

+ +

( , + 10 ; + + ExamBegin): +

+ +
uses PT4Exam;
+var
+  m, n, i, j: integer;
+  d: real;
+  a: array[1..10, 1..10] of real;
+begin
+  Task('ExamBegin28');
+  readln(m, n, d);
+  for i := 1 to m do
+    read(a[i, 1]);
+  for j := 2 to n do
+    for i := 1 to m do
+      a[i, j] := a[i, j - 1] + d;
+  for i := 1 to m do
+  begin
+    for j := 1 to n do
+      write(a[i, j]:7:2);
+    writeln;
+  end;
+end.
+
+ +

-. + , . -, + d , + m n ( +). -, + read «ln», . +

+

: + , , + . + +writeln . +

+

+. +, Matrix, + , + , . + , ExamBegin « » , + , + . +

+ +
+ +

3. +

+
+ +

ExamTaskC 100 , , + + ( C4). + () - . + ; + , , + / . + ExamTaskC +( ). +

+

, + , Programming Taskbook, + , , , + C. +

+

ExamTaskC , + ExamBegin. +

+

. +

+ +

ExamTaskC25°. . +  N, N  +
< > < > <>
+ , 1990 2010. , + , , +( , ). + .

+ + +

-, , ExamBegin, + PT4Exam: +

+ +
uses PT4Exam;
+
+begin
+  Task('ExamTaskC25');
+
+end.
+
+ +

, : +

+ +
+ +
+ +

, + . + ; + ( + Ctrl+Up Ctrl+Down). +

+

+ ( 10–20 ). +

+

, . + , , + year, . Pascal + , , + : 1990..2010. , + 0 +(, year + , , , + ). +

+ +

, + + year. , + (, ) . , + , , + (). + , , + . +

+ +

, + year , + , . +

+ +

( ): +

+ +
uses PT4Exam;
+var
+  n, i, k, m: integer;
+  year: array[1990..2010] of integer;
+begin
+  Task('ExamTaskC25');
+  for i := 1990 to 2010 do
+    year[i] := 0;
+  readln(n);
+  for i := 1 to n do
+  begin
+    readln(k, m); { k -  , m -   }
+    Inc(year[m]);
+  end;
+  for i := 1990 to 2010 do
+    writeln(i, ' ', year[i]);
+end.
+
+ +

, , . + , + +( , + ): +

+ +
+ +
+

: +

+ +
for i := 1990 to 2010 do
+  if year[i] > 0 then
+    writeln(i, ' ', year[i]);
+
+ + +

9 , , , + . +

+

, , + . +

+

, + ( 50–100 +). , . + , + , . + , + , PgUp, PgDn, Home, End, . +

+

, +«» , + , + . + [+] ( Ctrl+PgDn), +— [–] ( Ctrl+PgUp). + [/] +( Ctrl+Tab). ; + , +( + , , , ). + : +

+
+ +
+

, + ; . +

+

, «» , + . + + ( ) + ( Del + ). + . + , + . , + . , + , ( ), +, , + ( , ) . +

+

+ +, . +

+ +
+

4. +

+
+ +

ExamTaskC53°. (). +  M , +  N, N 
+< > <> <> < 1 ( )>
+ 20 30 ; + . 92, 95 98. +  2000  3000. ; + . , +  M, ( +, ). + , — . +  M , «». +

+ + + +

, - +( ; , + «» , + ): +

+
+ +
+ + +

, , . + , , 30, + : M. + 30 - , : , — + . , , + , + . +

+ +

Street name max s + 30 Street. + ns, s. +

+ +

. + M, , + . M, s0 p. +, , , + — . +

+ +

s0 s, , + max p. , max + p, max ( + ). +

+ +

; + . +

+ +

, , + M ( ns ). + , «»; + s . + , , +, . +

+ +

: +

+ +
uses PT4Exam;
+type
+  Street = record
+    name: string;
+    max: integer;
+  end;
+var
+  m, n, ns, i, j, k, p: integer;
+  s: array[1..30] of Street;
+  s0: string;
+  x: Street;
+  c: char;
+begin
+  Task('ExamTaskC53');
+  readln(m); { m -   }
+  readln(n);
+  ns := 0;
+  for i := 1 to n do
+  begin
+    read(k);
+    if k <> m then
+      readln {     }
+    else
+    begin
+      s0 := '';
+      read(c); {      }
+      read(c); {      }
+      while c <> ' ' do
+      begin
+        s0 := s0 + c;
+        read(c);
+      end;
+      read(c); {      }
+      while c <> ' ' do
+        read(c); {     }
+      readln(p); {         }
+      {    }
+      k := 0;
+      for j := 1 to ns do
+        if s[j].name = s0 then {      s }
+        begin
+          k := 1;
+          if s[j].max < p then
+            s[j].max := p;
+          break;
+        end;
+      if k = 0 then {       s }
+      begin
+        Inc(ns);
+        s[ns].name := s0;
+        s[ns].max := p;
+      end;
+    end;
+  end;
+  if ns = 0 then {      }
+    writeln('')
+  else
+  begin
+    {     ,
+          -    }
+    for k := 1 to ns - 1 do
+      for i := 1 to ns - k do
+        if (s[i].max > s[i + 1].max) or
+           (s[i].max = s[i + 1].max) and
+           (s[i].name > s[i + 1].name) then
+        begin
+          x := s[i];
+          s[i] := s[i + 1];
+          s[i + 1] := x;
+        end;
+    {      }
+    for i := 1 to ns do
+      writeln(s[i].max,' ',s[i].name);
+  end;
+end.
+
+ + diff --git a/PABCNetHelp/ForEducation/CheckedTasks/ctfile.html b/PABCNetHelp/ForEducation/CheckedTasks/ctfile.html new file mode 100644 index 000000000..ce8d6c601 --- /dev/null +++ b/PABCNetHelp/ForEducation/CheckedTasks/ctfile.html @@ -0,0 +1,343 @@ + + + + + + + + + +

+ +
+

-

+ +

File48.

+

, - + + « | », + + Shift+Ctrl+L. : +

+ +
+
+uses PT4;
+
+begin
+  Task('File48');
+
+end.
+
+ +

:

+ +
+ +
+ + +

(SA, SB + SC) (SD). + . + , ( ) + (- ).

+

, , , + , + + . + , ( 1).

+

( ), + . + , + , . . , + .

+

+ + +
+

+

, + . , + :

+ +
+
+uses PT4;
+var
+  i: integer;
+  s: string;
+  f: array [1..4] of file of integer;
+begin
+  Task('File48');
+  for i := 1 to 3 do
+  begin
+    read(s);
+    Assign(f[i], s);
+  end;
+end. 
+
+ + +

, . + s, , + s, + ( Assign) + + , .

+

, + . , + « »:

+ +
+ +
+

( ), + . +( ) + . , +( ) : + . + , , + , + ; + . ( , ) + . +

+
+

+

, 3 4, . , + , ( ). , + . « »:

+ +
+ +
+ +
+

,

+

Assign Reset, :

+
+
+uses PT4;
+var
+  i: integer;
+  s: string;
+  f: array [1..4] of file of integer;
+begin
+  Task('File48');
+  for i := 1 to 4 do
+  begin
+    read(s);
+    Assign(f[i], s);
+    Reset(f[i]);
+  end;
+end.  
+
+ +

«Error System.IO.FileNotFoundException»:

+
+ +
+ +

, Error, , +(Runtime Error). Error ( System.IO.FileNotFoundException, + -, , ) + .

+ +

« » + PascalABC.NET:

+
+ +
+ +
+

+

, + Reset, Rewrite, + . , , , + Close. :

+
+
+uses PT4;
+var
+  i: integer;
+  s: string;
+  f: array [1..4] of file of integer;
+begin
+  Task('File48');
+  for i := 1 to 4 do
+  begin
+    read(s);
+    Assign(f[i], s);
+    if i < 4 then Reset(f[i])
+    else Rewrite(f[i]);
+  end;
+  { * }
+  for i := 1 to 4 do
+    Close(f[i]);
+end.  
+
+ +

{ * } , - + : Reset Rewrite Close.

+

; , . + , . + « », + , , EOF: ( EOF + , , ):

+ +
+ +
+ +
+

,

+

- . + : file of integer , +, file of real, .

+

, - + . , : + f integer real, + a real, ( , { * }) + :

+
+
+for i := 1 to 3 do
+begin
+  read(f[i], a);
+  write(f[4], a);
+end;
+
+
+

+ ( ). , + ; , , + .

+

:

+ +
+ +
+ + +

, , , + . , + file of real +( 8 ), « », , + ( 4 ). + « » 8 , + .

+

, , , , + . , «» + .

+ + +
+

,

+

real integer:

+
+
+uses PT4;
+var
+  i: integer;
+  s: string;
+  f: array [1..4] of file of integer;
+  a: integer;
+begin
+  Task('File48');
+  for i := 1 to 4 do
+  begin
+    read(s);
+    Assign(f[i], s);
+    if i < 4 then Reset(f[i])
+    else Rewrite(f[i]);
+  end;
+  for i := 1 to 3 do
+  begin
+    read(f[i], a);
+    write(f[4], a);
+  end;
+  for i := 1 to 4 do
+    Close(f[i]);
+end.  
+
+ + +

, «» : + ( «»), :

+ +
+ +
+ + +
+

+

, , +File48:

+
+
+uses PT4;
+var
+  i, a: integer;
+  s: string;
+  f: array [1..4] of file of integer;
+begin
+  Task('File48');
+  for i := 1 to 4 do
+  begin
+    read(s);
+    Assign(f[i], s);
+    if i < 4 then Reset(f[i])
+    else Rewrite(f[i]);
+  end;
+  while not Eof(f[1]) do
+    for i := 1 to 3 do
+    begin
+      read(f[i], a);
+      write(f[4], a);
+    end;
+  for i := 1 to 4 do
+    Close(f[i]);
+end.  
+
+ +

while not Eof(f[1]) do, + (, + ) . + « . 1 ( 5)», + — « !»:

+ +
+ +
+ + +
+

+

« (F2)», + , F2, , + :

+
+
+File48    a08/09 12:43  .
+File48    a08/09 12:50      .
+File48    a08/09 12:52    .
+File48    a08/09 12:53 Error System.IO.FileNotFoundException.
+File48    a08/09 12:57  .--3
+File48    a08/09 13:06  !
+
+
+ +

Esc. + PascalABC.NET. + « | », + + Shift+Ctrl+R. +

+ + + + + diff --git a/PABCNetHelp/ForEducation/CheckedTasks/ctpointer.html b/PABCNetHelp/ForEducation/CheckedTasks/ctpointer.html new file mode 100644 index 000000000..eef0abcc1 --- /dev/null +++ b/PABCNetHelp/ForEducation/CheckedTasks/ctpointer.html @@ -0,0 +1,535 @@ + + + + + + + + + +

+ +
+ +

1.

+
+ +

Dynamic : , + + TNode, PNode TNode: +PNode = ^TNode. TNode PNode ; + Programming Taskbook ( TNode, + Dynamic):

+
+
+type
+  PNode = ^TNode;
+  TNode = record
+    Data: integer;
+    Next: PNode;
+    Prev: PNode;
+    . . .
+  end;
+
+
+

Dynamic2 , + .

+ +
+

-

+ +

- Dynamic2, + « | », + + Shift+Ctrl+L, :

+ +
+
+uses PT4;
+
+begin
+  Task('Dynamic2');
+
+end.
+
+
+ +

:

+
+ +
+ + + +

: .

+ + +

, . + ; , , + — , Data + . ( ).

+ + +

, :

+
+
+ P1
+ 75 - 65 - 22 - 26 - 10 >nil
+
+
+

, 5 , Data, + 75, Next , Data + 65, , , Data 10, + Next nil, . + , , , + :

+
+ +
+ +

, , + ( , + ).

+

? . + , + . , + , , + , .

+

, , , + P1, .

+
+
+P1 = ptr
+
+
+

P1 = , , +- , ptr , , + read.

+

. : «ptr» «» +( )? , , , + , , .

+

, ptr , + , ( nil). +, , + . +, «» , + .

+

, ( ) +, , + ( write). + , .

+ +
+

+ +

+Dynamic2. , ; + , + , , , , + .

+

, , :

+
+
+uses PT4;
+var
+  p1: PNode;
+  n: integer;
+begin
+  Task('Dynamic2');
+  read(p1);
+  n := 0;
+  while p1 <> nil do
+  begin
+    write(p1^.Data);
+    n := n + 1;
+    p1 := p1^.Next;
+  end;
+  write(n);
+end.
+
+
+

, , + - , + , « »:

+ +
+ +
+ +

+
+
+write(p1);
+
+
+

, + nil. + , while p1 , + :

+ +
+ +
+ +
+

+ +

, p2, + , p1. + while + :

+
+uses PT4;
+var
+  p1,p2: PNode;
+  n: integer;
+begin
+  Task('Dynamic2');
+  read(p1);
+  n := 0;
+  while p1 <> nil do
+  begin
+    write(p1^.Data);
+    n := n + 1;
+    p2 := p1;       {     }
+    p1 := p1^.Next; {      }
+  end;
+  write(n, p2);
+end.
+
+ +

, « !»:

+ +
+ +
+ +
+

2.

+
+

+ + +

, -: +Dynamic3.

+

, , + , , :

+
+ +
+

, +( , ).

+
+

+ + +

, ? , , +Dynamic3, , :

+
+uses PT4;
+var
+  d: integer;
+  p1: PNode;
+begin
+  Task('Dynamic3');
+  read(d, p1);
+  write(p1);
+end.
+
+

:

+
+ +
+

, , + , . , , + , ( ) . . , + , , + .

+
+

+ + +

Dynamic3 , + New, , +( , ):

+
+uses PT4;
+var
+  d: integer;
+  p1, p2: PNode;
+begin
+  Task('Dynamic3');
+  read(d, p1);
+  New(p2);
+  p2^.Data := D;
+  p2^.Next := p1;
+  write(p2);
+end.
+
+

:

+
+ +
+ +
+

3.

+
+

+ + +

— +Dynamic5. + , , + .

+

, + «» + , «», , .

+

+, , ( + 15):

+
+ +
+
+

+ + +

, + , :

+
+uses PT4;
+var p1: PNode;
+begin
+  Task('Dynamic5');
+  read(p1);
+  write(p1^.Data, p1^.Next);
+end.
+
+

+( « » « » ), + « », + , :

+
+ +
+
+

+ + +

+ Dispose, , p1:

+
+uses PT4;
+var p1: PNode;
+begin
+  Task('Dynamic5');
+  read(p1);
+  write(p1^.Data, p1^.Next);
+  Dispose(p1);
+end.
+
+

:

+
+ +
+ +
+

4.

+
+

+

+Dynamic30, + . -, + , «» , + :

+
+ +
+ + +

, , : +-, =, -, +nil<.

+

, , + ( Next, ), + ( Prev), Prev + nil:

+
+ +
+ +
+

+ +

+ Prev , :

+
+uses PT4;
+var
+  p1, p: PNode;
+begin
+  Task('Dynamic30');
+  read(p1);
+  p := p1^.Next;
+  while p <> nil do
+  begin
+    p^.Prev := p1;
+    p1 := p1^.Next;
+    p := p^.Next;
+  end;
+  write(p1); {      }
+end.
+
+

Prev , . +( , nil<):

+
+ +
+

. «=» . +, , + , , :

+
+                         P2
+nil< 33 = 64 - 78 = 12 = 51 >nil
+
+

, , +( Next , Prev + ).

+
+

+

while + :

+
+  p1^.Prev := nil;
+
+

:

+
+ +
+ + + +

. Dynamic30 , + : +

+ +
+uses PT4;
+var
+  p1, p: PNode;
+begin
+  Task('Dynamic30');
+  p := nil;
+  read(p1);
+  while p1 <> nil do
+  begin
+    p1^.Prev := p;
+    p := p1;
+    p1 := p1^.Next;
+  end;
+  write(p);
+end.
+
+ + + +
+

5.

+
+

+

, «», + Next ( , + Prev + ). +Dynamic55, + + .

+

- , + , «» , + — :

+
+ +
+ + +

<< = = >> +(, Prev Next + nil).

+

, , , + :

+
+ +
+
+

+

Dynamic55 + :

+
+uses PT4;
+var
+  p1, p2: PNode;
+begin
+  Task('Dynamic55');
+  read(p1);
+  p2 := p1;
+  while p2^.Next <> nil do
+    p2 := p2^.Next;
+  p2^.Next := p1;
+  write(p2);
+end.
+
+

«» , , + ( — ). +( , , ):

+
+ +
+ +
+

+

write + :

+
+  p1^.Prev := p2;
+
+

:

+
+ +
+ + + +
+

+

« (F2)», + , F2, , + :

+ +
+Dynamic2    a08/09 13:11  .
+Dynamic2    a08/09 13:15     .
+Dynamic2    a08/09 13:17  .
+Dynamic2    a08/09 13:20  !
+Dynamic3    a08/09 13:21  .
+Dynamic3    a08/09 13:24  .
+Dynamic3    a08/09 13:28  !
+Dynamic5    a08/09 13:29  .
+Dynamic5    a08/09 13:30    .
+Dynamic5    a08/09 13:31  !
+Dynamic30   a08/09 13:34  .
+Dynamic30   a08/09 13:42  .
+Dynamic30   a08/09 13:43  !
+Dynamic55   a08/09 13:54  .
+Dynamic55   a08/09 13:57  .
+Dynamic55   a08/09 13:58  !
+
+

Esc. + PascalABC.NET. + « | », + + Shift+Ctrl+R. +

+ + + + diff --git a/PABCNetHelp/ForEducation/CheckedTasks/ctstring.html b/PABCNetHelp/ForEducation/CheckedTasks/ctstring.html new file mode 100644 index 000000000..fb5a95cb5 --- /dev/null +++ b/PABCNetHelp/ForEducation/CheckedTasks/ctstring.html @@ -0,0 +1,215 @@ + + + + + + + + + +

+ +
+

-

+ +

String9.

+

- + + « | », + + Shift+Ctrl+L. :

+ +
+uses PT4;
+
+begin
+  Task('String9');
+
+end.
+
+ +

:

+ +
+ +
+ +

char string ; , , + (, 9) , +(, '9'). + , , . + +


+

+

, +( , ): +

+
+
+uses PT4;
+var
+  n: integer;
+  c1, c2: char;
+begin
+  Task('String9');
+  read(c1, c2, n);
+end.
+
+ + +

, + . , + +« »:

+ +
+ +
+ +

, Programming Taskbook +: + ( ), . + , +, , , +.

+

, , +, ( ), read + + . , (1) + , , + . +Programming Taskbook: - + . +

+

, :

+
+
+  read(n, c1, c2);
+
+

, - +, - :

+
+ +
+

, , , . + : , + ( ). +

+
+

+

+ ( ):

+
+
+uses PT4;
+var
+  n, i: integer;
+  c1, c2: char;
+  s: string;
+begin
+  Task('String9');
+  read(n, c1, c2);
+  s := '';
+  for i := 1 to n do
+    s := s + c1 + c2;
+  write(s);
+end.
+
+

, s := '' , + «» ( , — + #0, + — '').

+

:

+
+ +
+

, , , + . , + ; :

+
+ +
+

. . , + 1 99, 10000, +, : 1*.

+
+

+

- . , + , n + 2*n ( n, ). +

+ :

+
+
+uses PT4;
+var
+  n, i: integer;
+  c1, c2: char;
+  s: string;
+begin
+  Task('String9');
+  read(n, c1, c2);
+  s := '';
+  for i := 1 to n div 2 do
+    s := s + c1 + c2;
+  write(s);
+end.
+
+

« . 1 ( 5)», + — « !»:

+
+ +
+

. , , String9, + , :

+
+
+uses PT4;
+var
+  n, i: integer;
+  c1, c2: char;
+  s: string;
+begin
+  Task('String9');
+  read(n, c1, c2);
+  SetLength(s, n);
+  for i := 1 to n div 2 do
+  begin
+    s[2 * i - 1] := c1;
+    s[2 * i] := c2;
+  end;
+  write(s);
+end.
+
+

SetLength(s, n), + s. , + , + .

+ + + + +
+

+

« (F2)», + , F2, , + :

+ +
+
+String9   a08/09 11:17  .
+String9   a08/09 11:18       .
+String9   a08/09 11:21     .
+String9   a08/09 11:26  .
+String9   a08/09 11:29  !
+
+
+

Esc. + PascalABC.NET. + « | », + + Shift+Ctrl+R. +

+ + + + diff --git a/PABCNetHelp/ForEducation/CheckedTasks/cttree.html b/PABCNetHelp/ForEducation/CheckedTasks/cttree.html new file mode 100644 index 000000000..e2a7ba11c --- /dev/null +++ b/PABCNetHelp/ForEducation/CheckedTasks/cttree.html @@ -0,0 +1,314 @@ + + + + + + + + + + + + +

+

+
+

1. +

+
+

Tree, Dynamic, : + , + TNode, PNode TNode: PNode = +^TNode. TNode PNode ; + Programming Taskbook. +

+

, , + Tree2. +

+

Tree2°. + P1 TNode — . + Left Right ( ), +, , — , , + Left Right nil ( nil Left Right). + . +

+
+

-

+

, - + + « | », + + Shift+Ctrl+L. : +

+ +
+uses PT4;
+
+begin
+  Task('Tree2');
+end.
+
+

: +

+
+ +
+ + +

+: . +

+

, . + . , + ( ). + , . . Data TNode. + , ; + , — . + , Left / Right nil. +

+

+ , . + 15, 58, + 42, 4. +3 4; 3 15 11, 4 — 38 84. + + ( 55 20), : + ( 42, 87 60) ( 58). +

+

, , + . + , , + , +, - ( , ). +

+

+ , + . +

+ +

+ +
+

+ +

Tree2 , + ; + , . +

+

, , + ( ). + , + ( , ), , + . +, NodeCount(P), , + P, : P nil, + 0; +1 + NodeCount(P^.Left) + NodeCount(P^.Right) +( , — + , — ; , + , ). +

+

, : +

+
+uses PT4;
+function NodeCount(P: PNode): integer;
+begin
+  if P = nil then
+    result := 0
+  else
+    result := 1 + NodeCount(P^.Left) + NodeCount(P^.Right);
+end;
+var P1: PNode;
+begin
+  Task('Tree2');
+  read(P1);
+  write(NodeCount(P1));
+end.
+
+

NodeCount (), + Left Right nil. NodeCount, + : P1 , + NodeCount(P1), write. +

+

, « +!». +

+
+ +

2. +

+
+

+ , . , , + , + . , + , + . Parent. + , Parent nil. +

+

, , . + Tree49. +

+

Tree49°. + P1 , TNode, + Left Right. Parent TNode, + , + ( Left Right), + ( Parent). Parent nil. +

+

-, Tree49, + «» , + , + , . +

+
+ +
+ +

, - , + . , , , + ; . + P1 + , + . +

+

+ Parent , . + P , + Par : +

+
+uses PT4;
+procedure SetParent(P, Par: PNode);
+begin
+  if P = nil then
+    exit;
+  P^.Parent := Par;
+  SetParent(P^.Left, P);
+  SetParent(P^.Right, P);
+end;
+var P1: PNode;
+begin
+  Task('Tree49');
+  read(P1);
+  SetParent(P1, nil);
+end.
+
+

SetParent + nil. +

+

+. . +, , + , , , Parent +(, nil). +

+
+ +

3. +

+
+

TNode , + , +( ; +« »). + Tree86 — , , + . +

+

Tree86°. + ( , + ) + TNode : Left + (. . ) , Right — + , . . , . + Right nil, . + P1 . , + , P2 . +

+

, + TNode ( ): +

+
+ +
+ +

( 13) (71, 73 29), + 71 , 73 (18, 93 92), + 29 — (24 84). 46, + 93. +

+

Tree86 , . +

+
+ +
+

, : +, , , + , , — . + +, , + , , — . +

+

, , , , + ( , + ). +

+

CreateNode(P). + P , . + ( , P = nil, + nil). + . , +( P ), ( P + ) . + P P1 P2. , + P (, ), + P1, P2 nil. + P1 P2, , , + . , Tree86. +

+
+uses PT4;
+function CreateNode(P: PNode): PNode;
+var P1, P2: PNode;
+begin
+  if P = nil then
+  begin
+    result := nil;
+    exit;
+  end;
+  New(result);
+  result^.Data := P^.Data;
+  result^.Right := nil;
+  P1 := P^.Left;
+  P2 := P^.Right;
+  if P1 = nil then
+  begin
+    P1 := P2;
+    P2 := nil;
+  end;
+  {     }
+  result^.Left := CreateNode(P1);
+  if P1 <> nil then
+    result^.Left^.Right := CreateNode(P2);
+end;
+var P1: PNode;
+begin
+  Task('Tree86');
+  read(P1);
+  write(CreateNode(P1));
+end.
+
+

+. , , + , + Right ( Right nil). + «» ; + Left . + , , + +( ), , + , . +

+ + diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-1.png new file mode 100644 index 000000000..035c278c2 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-2.png new file mode 100644 index 000000000..88c9a28bd Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-3.png new file mode 100644 index 000000000..fa8d09ed8 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-4.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-4.png new file mode 100644 index 000000000..7a9656fa9 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-4.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-5.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-5.png new file mode 100644 index 000000000..e0003c4c7 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-5.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-6.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-6.png new file mode 100644 index 000000000..53fa9c917 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Begin3-6.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-1.png new file mode 100644 index 000000000..b314a83e9 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-2.png new file mode 100644 index 000000000..833f690b3 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-3.png new file mode 100644 index 000000000..5d30ffe23 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-4.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-4.png new file mode 100644 index 000000000..827c0c042 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-4.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-5.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-5.png new file mode 100644 index 000000000..f9b7d4b1e Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic2-5.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic3-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic3-1.png new file mode 100644 index 000000000..72891a9fe Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic3-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic3-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic3-2.png new file mode 100644 index 000000000..55e55b96f Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic3-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic3-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic3-3.png new file mode 100644 index 000000000..f6b13ec4a Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic3-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-1.png new file mode 100644 index 000000000..627eaa8c3 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-2.png new file mode 100644 index 000000000..23a539c19 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-3.png new file mode 100644 index 000000000..d16f04d1f Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-4.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-4.png new file mode 100644 index 000000000..45a5e5ecb Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic30-4.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic5-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic5-1.png new file mode 100644 index 000000000..3feb56c01 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic5-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic5-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic5-2.png new file mode 100644 index 000000000..09abeecfe Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic5-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic5-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic5-3.png new file mode 100644 index 000000000..bbdff0da7 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic5-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-1.png new file mode 100644 index 000000000..958b81e04 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-2.png new file mode 100644 index 000000000..bc88842e9 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-3.png new file mode 100644 index 000000000..9081e689c Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-4.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-4.png new file mode 100644 index 000000000..4c586a9b5 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Dynamic55-4.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin2-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin2-1.png new file mode 100644 index 000000000..4cc41365d Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin2-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin2-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin2-2.png new file mode 100644 index 000000000..37b01ccdf Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin2-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin2-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin2-3.png new file mode 100644 index 000000000..c7900461e Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin2-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin28-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin28-1.png new file mode 100644 index 000000000..f2bf51e91 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin28-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin28-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin28-2.png new file mode 100644 index 000000000..34b71eef5 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamBegin28-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC25-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC25-1.png new file mode 100644 index 000000000..cd222290a Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC25-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC25-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC25-2.png new file mode 100644 index 000000000..eb449d23a Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC25-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC25-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC25-3.png new file mode 100644 index 000000000..01ec31bc7 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC25-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC53-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC53-1.png new file mode 100644 index 000000000..f51339289 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/ExamTaskC53-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-1.png new file mode 100644 index 000000000..a56235ef8 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-2.png new file mode 100644 index 000000000..50b5e48df Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-3.png new file mode 100644 index 000000000..6b084406d Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-4.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-4.png new file mode 100644 index 000000000..79f32d467 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-4.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-6.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-6.png new file mode 100644 index 000000000..2c16f72fd Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-6.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-7.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-7.png new file mode 100644 index 000000000..1ba35cf49 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-7.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-8.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-8.png new file mode 100644 index 000000000..cbc690f33 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-8.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-9.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-9.png new file mode 100644 index 000000000..d2a949c5e Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/File48-9.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-1.png new file mode 100644 index 000000000..a7a586405 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-2.png new file mode 100644 index 000000000..7374b367a Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-3.png new file mode 100644 index 000000000..32d13b1b5 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-4.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-4.png new file mode 100644 index 000000000..5f2a6f4e1 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-4.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-5.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-5.png new file mode 100644 index 000000000..7518f40c6 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/RBa1-5.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-1.png new file mode 100644 index 000000000..e7ddf3fdb Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-2.png new file mode 100644 index 000000000..d2982525b Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-3.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-3.png new file mode 100644 index 000000000..30633d57f Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-3.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-4.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-4.png new file mode 100644 index 000000000..23bb7acb4 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-4.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-5.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-5.png new file mode 100644 index 000000000..f75af7a13 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-5.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-6.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-6.png new file mode 100644 index 000000000..d68d64848 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/String9-6.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree2-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree2-1.png new file mode 100644 index 000000000..262d9f9cf Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree2-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree49-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree49-1.png new file mode 100644 index 000000000..485fb05d7 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree49-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree86-1.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree86-1.png new file mode 100644 index 000000000..1bd6221f1 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree86-1.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree86-2.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree86-2.png new file mode 100644 index 000000000..aa31621e6 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/Tree86-2.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/demo.gif b/PABCNetHelp/ForEducation/CheckedTasks/gif/demo.gif new file mode 100644 index 000000000..ef41f3b44 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/demo.gif differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/fIle48-5.png b/PABCNetHelp/ForEducation/CheckedTasks/gif/fIle48-5.png new file mode 100644 index 000000000..0787ba4b1 Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/fIle48-5.png differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/load.gif b/PABCNetHelp/ForEducation/CheckedTasks/gif/load.gif new file mode 100644 index 000000000..3006fc44e Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/load.gif differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/gif/results.gif b/PABCNetHelp/ForEducation/CheckedTasks/gif/results.gif new file mode 100644 index 000000000..00722507f Binary files /dev/null and b/PABCNetHelp/ForEducation/CheckedTasks/gif/results.gif differ diff --git a/PABCNetHelp/ForEducation/CheckedTasks/index.html b/PABCNetHelp/ForEducation/CheckedTasks/index.html new file mode 100644 index 000000000..73b2ae7be --- /dev/null +++ b/PABCNetHelp/ForEducation/CheckedTasks/index.html @@ -0,0 +1,99 @@ + + + + + + + + +

+
+

, , +. , + , , . + , + .

+

PascalABC.NET + +Programming Taskbook , , + ( , +, , + . .), + .

+

, + PascalABC.NET? + , + . +

+

1. Begin3 + Programming Taskbook.

+

Begin3, + + : + - read +write : + read +( , + ), write + . , , + , , + ; +, . + , + , + , + . +

+ +

2. a1 +.

+

+ .

+

3. String9 + Programming Taskbook.

+

+ . , , + — .

+

4. File48 + Programming Taskbook.

+

+ . + , +. , , + ; + . , + , +, . + .  

+

5. Dynamic + Programming Taskbook.

+

, + . + ( ), + . + . + + .

+

6. Tree + Programming Taskbook.

+

— +. , , + , + . . +

+

7. ExamBegin ExamTaskC + Programming Taskbook.

+

, + . , + - +Pascal ( , Programming Taskbook). + ExamBegin, , + ExamTaskC, . +

+

, Programming Taskbook, + + , 4.11. +

+ + + diff --git a/PABCNetHelp/ForEducation/Executors/DMa1.png b/PABCNetHelp/ForEducation/Executors/DMa1.png new file mode 100644 index 000000000..a0697da39 Binary files /dev/null and b/PABCNetHelp/ForEducation/Executors/DMa1.png differ diff --git a/PABCNetHelp/ForEducation/Executors/dmstart.html b/PABCNetHelp/ForEducation/Executors/dmstart.html new file mode 100644 index 000000000..a7bb48efb --- /dev/null +++ b/PABCNetHelp/ForEducation/Executors/dmstart.html @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + +

+ + . + , , . + . +

, , +:

+

+

, +, , — +. , +.

+

+ Drawman: +

+
+ ToPoint(x,y) + (x,y);
+ OnVector(a,b)
+ (a,b);
+ PenUp
;
+ PenDown
.

+
+

+ :

+
+uses Drawman;
+begin
Task('c1');
+end.
+
+

+.

+

Task — , + Drawman + .

+

+:

+
+ a ;
+ c
;
+ cc
;
+ p
;
+ pp
. +
+

20 x 30 + StandardField , + N x M — Field(N,M).

+ + + diff --git a/PABCNetHelp/ForEducation/Executors/index.html b/PABCNetHelp/ForEducation/Executors/index.html new file mode 100644 index 000000000..3f3421179 --- /dev/null +++ b/PABCNetHelp/ForEducation/Executors/index.html @@ -0,0 +1,34 @@ + + + + + + + + + +

+

, + . , + . +

+

+ + . PascalABC.NET + +, . . , . .  + . .  +« 7–9 », ., 2001. , + , + + , .

+

, PascalABC.NET + — + PascalABC.NET.

+

. a1 + +.

+ + + + diff --git a/PABCNetHelp/ForEducation/Executors/robotstart.html b/PABCNetHelp/ForEducation/Executors/robotstart.html new file mode 100644 index 000000000..49eb5ac10 --- /dev/null +++ b/PABCNetHelp/ForEducation/Executors/robotstart.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

+ . , + . — + .

+

, , +:

+

+

, + — , , .

+

+ Robot: +

+
+ Right + ;
+ Left
;
+ Up
; +
+ Down
; +
+ Paint
;
+ WallFromLeft
True + ; +
+ WallFromRight
True + ; +
+ WallFromUp
True + ; +
+ WallFromDown
True + ; +
+ FreeFromLeft
True + ; +
+ FreeFromRight
True + ; +
+ FreeFromUp
True + ; +
+ FreeFromDown
True + ; +
+ CellIsPainted
True + , , ; +
+ CellIsFree
True + , , . +
+

+ :

+
+uses Robot;
+begin
+  + Task('c1');
+end.
+
+

Task — , + Robot + .

+

:

+
+ a ;
+ c
;
+ if
;
+ w
;
+ if
+ ;
+ count
-;
+ cc
;
+ p
;
+ pp
. +
+

9 x 11 + StandardField , + N x M — Field(N,M). + .

+ + + diff --git a/PABCNetHelp/ForEducation/MakeModules/DMMake.html b/PABCNetHelp/ForEducation/MakeModules/DMMake.html new file mode 100644 index 000000000..995d03c12 --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/DMMake.html @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + + + + + + +

DMTaskMaker

+
+ + + + +
+ + DMTaskMaker
+ +
+

type TaskProcType = + procedure;

+
+

, . + ; + RegisterTask, . +

+ + + + +
+ + DMTaskMaker
+ +
+

procedure Field(szx,szy: integer);

+
+

szx + szy .

+ +
+

procedure DoToPoint(x,y: integer);

+
+

- + (x, y).

+ +
+

procedure DoOnVector(dx,dy: integer);

+
+

- + (x, y).

+ +
+

procedure DoPenUp;

+
+

- .

+ +
+

procedure DoPenDown;

+
+

- .

+ +
+

procedure TaskText(s: string);

+
+

s. +

+ +
+

procedure RegisterGroup(name,description,unitname: string; count: integer);

+
+

PT4Load. + PT4Load , +, + - . + name, + description, + unitname, , count. + 7 ( ) , + 999. + RegisterGroup + , . +

+
+

procedure RegisterTask(name: string; p: TaskProcType); +

+

name p, . + . + RegisterGroup, RegisterTask +, . . +

+ + + + + diff --git a/PABCNetHelp/ForEducation/MakeModules/DMMakeCreation.html b/PABCNetHelp/ForEducation/MakeModules/DMMakeCreation.html new file mode 100644 index 000000000..14b5b8944 --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/DMMakeCreation.html @@ -0,0 +1,130 @@ + + + + + + + + + + + + +

+
+

+ . DMTasks.pas +:

+
+

unit DMTasks;

+

interface

+

uses DMTaskMaker;

+

implementation

+

procedure FirstDM;
+ var i,a: integer;
+ begin
+  TaskText(' mydm1. , ');
+  Field(14,8);
+  DoToPoint(7,7);
+  a:=6;
for i:=1 to 6 do
begin
+    DoPenDown;
+    DoOnVector(a,-a);
+    DoOnVector(-a,a);
+    DoOnVector(-a,-a);
+    DoOnVector(a,a);
+    Dec(a);
+    DoPenUp;
+    DoOnVector(0,-1);
end;
+ end;

+

begin
+   RegisterGroup('mydm',' ','DMTasks',2);
+   RegisterTask('mydm1',FirstDM);
+ end.

+
+

( - ):

+
+

uses Drawman, + DMTasks;
+ begin
+  Task('mydm1');
+ end.

+
+

:

+

+

:

+
+

procedure DoCross;
+begin
+  DoPenDown;
+  DoOnVector(1,0); DoOnVector(0,-1);
+  DoOnVector(1,0); DoOnVector(0,-1);
+  DoOnVector(-1,0); DoOnVector(0,-1);
+  DoOnVector(-1,0); DoOnVector(0,1);
+  DoOnVector(-1,0); DoOnVector(0,1);
+  DoOnVector(1,0); DoOnVector(0,1);
+  DoPenUp;
+end;

+

procedure SecondDM;
+begin
+  TaskText(' mydm2. , Cross');
+  Field(18,12);
+  DoToPoint(3,8);
+  DoCross;
+  DoToPoint(8,4);
+  DoCross;
+  DoToPoint(12,11);
+  DoCross;
+  DoToPoint(15,6);
+  DoCross;
+end;

+
+

; :

+
+

begin
+   RegisterGroup('mydm',' ','DMTasks',2);
+   RegisterTask('mydm1',FirstDM);
+   RegisterTask('mydm2',SecondDM);
+ end.

+
+

:

+
+

uses Drawman, + DMTasks;
+ begin
+  Task('mydm2');
+ end.

+
+

:

+

+

+ DMTasks + - PT4Load. +    +PT4Load +DM «», : + 

+

+

, mydm . +mydm1:

+

+ +

+

Enter + DMmydm1.pas :

+
+

uses Drawman, + DMTasks;
+
+ begin
+  Task('mydm1');
+
+ end.

+
+

:)

+ + + diff --git a/PABCNetHelp/ForEducation/MakeModules/RobotMake.html b/PABCNetHelp/ForEducation/MakeModules/RobotMake.html new file mode 100644 index 000000000..8fabc6313 --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/RobotMake.html @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + +

RobotTaskMaker

+
+ + + + +
+ + RobotTaskMaker
+ +
+

type TaskProcType = + procedure;

+
+

, . + ; + RegisterTask, . +

+ + + + +
+ + RobotTaskMaker
+ +
+

procedure Field(szx,szy: integer);

+
+

szx + szy .

+
+

procedure HorizontalWall(x,y,len: integer);

+
+

len + (x, +y).

+
+

procedure VerticalWall(x,y,len: integer);

+
+

len + (x, +y).

+
+

procedure RobotBegin(x,y: integer);

+
+

(x, +y).

+
+

procedure RobotEnd(x,y: integer);

+
+

(x, +y).

+
+

procedure RobotBeginEnd(x,y,x1,y1: integer);

+
+

(x, +y) (x1, +y1).

+
+

procedure Tag(x,y: integer);

+
+

(x, +y) .

+
+

procedure TagRect(x,y,x1,y1: integer);

+
+

, + (x, +y) (x1, +y1), +.

+
+

procedure MarkPainted(x,y: integer);

+
+

(x, +y) ( + ).

+
+

procedure TaskText(s: string);

+
+

s.

+
+

procedure RegisterGroup(name,description,unitname: string; count: integer);

+
+

PT4Load. + PT4Load , , + - . + name, + description, + unitname, , count. + 7 ( ) , + 999. + RegisterGroup + , . +

+
+

procedure RegisterTask(name: string; p: TaskProcType); +

+

name p, . + . + RegisterGroup, RegisterTask +, . . +

+ + + diff --git a/PABCNetHelp/ForEducation/MakeModules/RobotMakeCreation.html b/PABCNetHelp/ForEducation/MakeModules/RobotMakeCreation.html new file mode 100644 index 000000000..33f7a5895 --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/RobotMakeCreation.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + +

+
+

+ . RobTasks.pas +:

+
+

unit RobTasks;

+

interface

+

uses RobotTaskMaker;

+

implementation

+

procedure FirstRob;
+ begin
+   TaskText(' myrob1. ');
+   Field(10,6);
+   HorizontalWall(0,3,4);
+   VerticalWall(4,3,2);
+   RobotBegin(1,4);
+   VerticalWall(5,1,5);
+   HorizontalWall(5,1,4);
+   RobotEnd(6,2);
+   Tag(6,2);
+ end;

+

begin
+   RegisterGroup('myrob',' ','RobTasks',2);
+   RegisterTask('myrob1',FirstRob);
+ end.

+
+

( - ):

+
+

uses Robot, RobTasks;
+ begin
+  Task('myrob1');
+ end.

+
+

: +

+

+

+ , :

+
+

procedure SecondRob;
+ var n,i: integer;
+ begin
+   TaskText(' myrob2. ');
+   n:=Random(4)+7;
+   Field(n,4);
+   RobotBeginEnd(1,3,n,3);
+   MarkPainted(n,2);
+   Tag(n,3);
+   for i:=2 to n-1 do
+     if Random(3)=1 then
+     begin
+       MarkPainted(i,2);
+       Tag(i,3);
+     end;
+ end;

+
+

; :

+
+

begin
+   RegisterGroup('myrob',' ','RobTasks',2);
+   RegisterTask('myrob1',FirstRob);
+   RegisterTask('myrob2',SecondRob);
+ end.

+
+

:

+
+

uses Robot, RobTasks;
+ begin
+  Task('myrob2');
+ end.

+
+

:

+

+

+ DMTasks + - PT4Load. +    +PT4Load +RB «», : + 

+ +

+

, myrob . +myrob1:

+

+

Enter + RBmyrob1.pas :

+
+

uses Robot, RobTasks;
+
+ begin
+  Task('myrob1');
+
+ end.

+
+

:)

+ + + diff --git a/PABCNetHelp/ForEducation/MakeModules/default.css b/PABCNetHelp/ForEducation/MakeModules/default.css new file mode 100644 index 000000000..440ee83a0 --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/default.css @@ -0,0 +1,241 @@ +BODY, +TABLE, +TD { + font-family: Arial, sans-serif; + background-color: #ffffff; + font-size: small; +} + + +code { + color: #000080; + font-size: small; + text-align: left +} + + +pre { + color: #000080; + font-size: small; + text-align: left + text-indent: 30pt; + margin-left: 30pt; + margin-top: 3pt; + margin-bottom: 0pt; +} + + + + +code.codeit { + color: #000000; + font-family: Times; + font-style: italic; + font-size: small; + text-align: left +} + +H1 { + font-family: Arial, sans-serif; + font-weight: bold; + margin-top: 6pt; + margin-bottom: 6pt; + font-size: large; + color: #000080; + text-align: left +} + +H2 { + font-family: Arial, sans-serif; + font-weight: bold; + font-style: italic; + margin-bottom: 2pt; + margin-top: 6pt; + font-size: medium; + color: #000080; + text-align: left +} + +H3 { + font-family: Arial, sans-serif; + margin-bottom: 2pt; + margin-top: 6pt; + font-size: medium; + color: #000080; + text-align: left +} + +H4 { + font-weight: bold; + margin-top: 6pt; + margin-bottom: 2pt; + font-size: small; + text-align: left +} + +H5 { + font-size: 10.0pt; +} + +H6 { + font-size: 10.0pt; +} + +P { + margin-top: 3pt; + margin-bottom: 0pt; + font-family: Arial, sans-serif; + font-size: small; + text-indent: 30pt; + text-align: justify +} + +P.task { + margin-top: 3pt; + margin-bottom: 0pt; + margin-left: 0pt; + margin-right: 0pt; + font-family: Arial, sans-serif; + font-size: small; + text-indent: 30pt; + text-align: justify; + border-style: solid; + border-width: 1pt; +} + +P.remark { + margin-top: 3pt; + margin-bottom: 0pt; + margin-left: 30pt; + margin-right: 0pt; + font-family: Arial, sans-serif; + font-size: small; + text-indent: 0pt; + text-align: justify; +} + + + +P.ris { + font-family: Arial; + margin-top: 3pt; + margin-bottom: 0pt; + font-family: Arial, sans-serif; + font-size: small; + color: #000080; + text-indent: 0pt; + text-align: center +} + + + +H1.part { + color: #000000; + margin-top: 20pt; + margin-bottom: 20pt; + text-align: center + +} + +H1.part1 { + color: #000000; + margin-top: 80pt; + margin-bottom: 20pt; + text-align: center + +} + +H1.part2{ + color: #000000; + font-size: medium; + margin-top: 0pt; + margin-bottom: 20pt; + text-align: center +} + + + +H3.tit { + color: #000000; + margin-top: 10pt; + margin-bottom: 10pt; + text-align: center +} + +H2.subpart { + color: #000000; + margin-bottom: 80pt; + margin-top: 20pt; + text-align: center +} + +P.author { + margin-top: 0pt; + margin-bottom: 0pt; + font-family: Arial, sans-serif; + font-size: 9pt; + color: #000000; + text-indent: 0pt; + text-align: right +} + +P.refs { + margin-top: 0pt; + margin-bottom: 3pt; + font-family: Arial, sans-serif; + font-size: 10pt; + color: #000000; + text-indent: 0pt; + text-align: center +} + +P.foot { + margin-top: 0pt; + margin-bottom: 0pt; + font-family: Arial, sans-serif; + font-size: 9pt; + font-style: italic; + color: #000000; + text-indent: 0pt; + text-align: right +} + + + +OL, +UL { + margin-top: 3pt; + margin-bottom: 0pt; + font-size: small; + font-family: Arial, sans-serif; + text-align: justify +} + + +SPAN.tsktitle +{ + font-family: Arial, sans-serif; + font-weight: bold; + font-size: small; + +} + + + +P.tsk{text-align:justify;text-indent:-50;margin-top:5; margin-left:60;} +P.hnt{text-align:justify;margin-left:60;} +P.hntc{text-align:justify;margin-left:60;text-indent:0;margin-top:0;} +P.hntq{text-align:justify;margin-left: 60;margin-top:0;} +P.cmt{text-align:justify;margin-top:5;} +P.ttt{text-align:left;} +P.cnt{text-align:center;} +P.qte{ + color: #000080; + font-size: small; + text-indent:0; +text-align:left;margin-left:120;margin-top:0;margin-bottom:0;} +blockquote{font-family: Arial, sans-serif;text-align:justify;margin-left:100;margin-top:0; margin-bottom:0;} +P.cmtc{text-align:justify;} +P.cmtq{text-align:justify;} +SUB{font-family: Arial, sans-serif;;font-size:x-small;} +SUP{font-family: Arial, sans-serif;;font-size:x-small;} diff --git a/PABCNetHelp/ForEducation/MakeModules/images/demo_3.png b/PABCNetHelp/ForEducation/MakeModules/images/demo_3.png new file mode 100644 index 000000000..c46e75a5e Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/demo_3.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/dmmake1.PNG b/PABCNetHelp/ForEducation/MakeModules/images/dmmake1.PNG new file mode 100644 index 000000000..ca89dfc2d Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/dmmake1.PNG differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/dmmake2.PNG b/PABCNetHelp/ForEducation/MakeModules/images/dmmake2.PNG new file mode 100644 index 000000000..fb391f56c Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/dmmake2.PNG differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/dmmake3.PNG b/PABCNetHelp/ForEducation/MakeModules/images/dmmake3.PNG new file mode 100644 index 000000000..64af43037 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/dmmake3.PNG differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/dmmake4.PNG b/PABCNetHelp/ForEducation/MakeModules/images/dmmake4.PNG new file mode 100644 index 000000000..9af067d7b Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/dmmake4.PNG differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/load.gif b/PABCNetHelp/ForEducation/MakeModules/images/load.gif new file mode 100644 index 000000000..3006fc44e Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/load.gif differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4exam1.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam1.png new file mode 100644 index 000000000..8e99a2b0e Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam1.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4exam1a.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam1a.png new file mode 100644 index 000000000..d7af1719d Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam1a.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4exam2.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam2.png new file mode 100644 index 000000000..c8801f17c Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam2.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4exam3.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam3.png new file mode 100644 index 000000000..ab28145d6 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam3.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4exam4.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam4.png new file mode 100644 index 000000000..c9c13caa4 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam4.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4exam5.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam5.png new file mode 100644 index 000000000..86f33b323 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4exam5.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make1.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make1.png new file mode 100644 index 000000000..cfbc6914c Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make1.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make10.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make10.png new file mode 100644 index 000000000..d71878a52 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make10.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make11.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make11.png new file mode 100644 index 000000000..3b2130368 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make11.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make12.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make12.png new file mode 100644 index 000000000..c73249554 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make12.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make13.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make13.png new file mode 100644 index 000000000..b12d3f539 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make13.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make14.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make14.png new file mode 100644 index 000000000..578e8d017 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make14.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make15.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make15.png new file mode 100644 index 000000000..54f1d6b38 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make15.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make16.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make16.png new file mode 100644 index 000000000..4f89ab446 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make16.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make17.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make17.png new file mode 100644 index 000000000..ee213afd3 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make17.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make18.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make18.png new file mode 100644 index 000000000..1b96f9c02 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make18.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make2.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make2.png new file mode 100644 index 000000000..606d9ef08 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make2.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make3.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make3.png new file mode 100644 index 000000000..1bd6221f1 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make3.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make4.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make4.png new file mode 100644 index 000000000..717e1f670 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make4.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make5.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make5.png new file mode 100644 index 000000000..74c259939 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make5.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make6.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make6.png new file mode 100644 index 000000000..8e3d3a6eb Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make6.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make6a.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make6a.png new file mode 100644 index 000000000..992fc2167 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make6a.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make7.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make7.png new file mode 100644 index 000000000..408448081 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make7.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make8.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make8.png new file mode 100644 index 000000000..854d4b073 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make8.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/pt4make9.png b/PABCNetHelp/ForEducation/MakeModules/images/pt4make9.png new file mode 100644 index 000000000..359770cb9 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/pt4make9.png differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/rbmake1.PNG b/PABCNetHelp/ForEducation/MakeModules/images/rbmake1.PNG new file mode 100644 index 000000000..60552c2d7 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/rbmake1.PNG differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/rbmake2.PNG b/PABCNetHelp/ForEducation/MakeModules/images/rbmake2.PNG new file mode 100644 index 000000000..32f2e1cee Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/rbmake2.PNG differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/rbmake3.PNG b/PABCNetHelp/ForEducation/MakeModules/images/rbmake3.PNG new file mode 100644 index 000000000..c078a3f94 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/rbmake3.PNG differ diff --git a/PABCNetHelp/ForEducation/MakeModules/images/rbmake4.PNG b/PABCNetHelp/ForEducation/MakeModules/images/rbmake4.PNG new file mode 100644 index 000000000..0772d3422 Binary files /dev/null and b/PABCNetHelp/ForEducation/MakeModules/images/rbmake4.PNG differ diff --git a/PABCNetHelp/ForEducation/MakeModules/index.html b/PABCNetHelp/ForEducation/MakeModules/index.html new file mode 100644 index 000000000..21f44572b --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/index.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + +

:

+
+

PascalABC.NET + , + Programming Taskbook. + RobotTaskMaker, DMTaskMaker +PT4TaskMaker; RobotTaskMaker DMTaskMaker + , PT4TaskMaker + PT4TaskMakerNET. + :

+ + + + diff --git a/PABCNetHelp/ForEducation/MakeModules/tmaker_exam.html b/PABCNetHelp/ForEducation/MakeModules/tmaker_exam.html new file mode 100644 index 000000000..4e0e5206c --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/tmaker_exam.html @@ -0,0 +1,685 @@ + + + + + + + + + + + + +

PT4TaskMakerNET: ,    

+
+ +

Exam

+

4.10, Programming Taskbook + Pascal C++ + , : ExamBegin ExamTaskC. + , + -, +. Exam - + . , + , , , + , +. +

+

PT4TaskMaker + , . + , . +

+ +
  1. , , , + Exam ( -, + -). +
  2. , + , 4.10, +Pascal C++. +
  3. , - + . +
  4. Exam , Exam. +
  5. , + ( DataS) + ( DataFileT ResultFileT ). +
  6. +( ). +
+

, PascalABC.NET ExamDemo. +, , , + , , C++ Pascal Delphi Lazarus, + , . + C#, . +

+ +

+

, , . + , + . +

+

, , + , 1–4, . +

+

, + PascalABC.NET (. «»). +

+

( , 9 + ), 1 +( Exam), + ExamDemo. PT4ExamDemo. +

+

ExamDemo Exam, . + ExamBegin ExamBegin71 ExamBegin72, + « » + . + ExamTaskC 12 ExamTaskC25–ExamTaskC36, + : . +

+

, + 2 3 , ( PT4ExamDemo.pas): +

+
library PT4ExamDemo;
+
+uses PT4TaskMakerNET;
+
+procedure InitTask(num: integer);
+begin
+  case num of
+  1..2:  UseTask('ExamBegin', 70 + num);
+  3..14: UseTask('ExamTaskC', 22 + num);
+  end;
+end;
+
+procedure inittaskgroup;
+begin
+  if (CurrentVersion < '4.10') or
+     (CurrentLanguage and (lgPascal or lgCPP) = 0) then
+    exit;
+  CreateGroup('ExamDemo', '^  :   ',
+    '. . , 2013', 'qdfedsag33gbg45j', 14, InitTask);
+  CommentText('\P     ');
+  CommentText('  -, ');
+  CommentText(',    ');
+  CommentText('  : ');
+  CommentText('\MRead\m/\MReadln\m\:\MWrite\m/\MWriteln\m  ');
+  CommentText('Pascal,  \Mcin\m\:\Mcout\m   C++.');
+end;
+
+procedure activate(S: string);
+begin
+  ActivateNET(S);
+end;
+
+begin
+end.
+
+

. PT4TaskMakerNET, + PascalABC.NET. + +InitTask, . + , + UseTask, + . + 71 72 ExamBegin 25–36 + ExamTaskC ( 14 ). +

+

. inittaskgroup +( , . . ). + CreateGroup, + : + ('ExamDemo'), ('^ : '), , + , (14) (InitTask). +

+

, 4.10 + Pascal ++, CreateGroup + . , + inittaskgroup, ExamDemo . +

+

- «^» - . + + PT4Demo PT4Load ( «^» +, «: : + »). +

+

, 3, , + : + - ( + CommentText). + \M\m, . +

+

inittaskgroup activate +( ), + ActivateNET, PT4TaskMakerNET. +

+

, + PT4TaskMakerNET. PascalABC.NET + LIB PascalABC.NET, + . +

+

, + , + . + PT4Load, + [Shift]+[Ctrl]+[L] «»; +: ExamDemo1. ExamDemo1.pas : +

+
uses PT4Exam;
+
+begin
+  Task('ExamDemo1');
+
+end.
+
+

, + PT4, PT4Exam, , . +

+

, + , , + Task «?»: Task('ExamDemo?'). +

+

ExamDemo14: +

+

+

+

, + 4.11 , . + , + ( , ), + . +[F4]. : +

+

+

+ +

+( [Enter] [Backspace], + (. . «») . + , PascalABC.NET. +, +, . +

+

c html- ( , , + ), Task «?» + «#»: Task('ExamDemo#'). + ExamDemo14 + html- : +

+ +

+

+ +

+

. , + ExamBegin, . + ( ), + + . , + , . + , + . , , + ExamDemo2 (. , ). + +, ExamDemo2. +

+

, + , . +

+

+ : +

+
function RandR(a, b: integer): real;
+begin
+  result := RandomN(a*100, b*100)/100;
+end;
+
+

RandR RandomN, + , 4.11 ( RandomN(M, N) + , M..N, ). +RandR(a, b) (a b — ) , a..b + . + +; , , + . , 4.11 + RandomR, , + , +, . +

+

, , + , : +

+
procedure SwapR(var a, b: real);
+var
+  c: real;
+begin
+  c := a;
+  a := b;
+  b := c;
+end;
+
+

Exam, + 5 (. ). : +

+
  • , + ( DataS) + ( DataFileT ResultFileT ). +
+

, Exam : +

+
  1. , ( + ; , , , + .tst). +
  2. . +
  3. . +
  4. . +
  5. , + -. +
  6. , + , — ; , -, + , -, + , ( ). +
+

3, . + Exam. + , (StartExam) + 1–2, (EndExam) — 4–6. + , + : +

+
var
+  f1,f2: text;
+  f1name, f2name: string;
+
+procedure StartExam;
+var
+  s: string;
+begin
+  Str(RandomN(10000, 99999), s);
+  f1name := 'pt1' + s + '.tst';
+  f2name := 'pt2' + s + '.tst';
+  Assign(f1, f1name);
+  Rewrite(f1);
+  Assign(f2, f2name);
+  Rewrite(f2);
+end;
+
+procedure EndExam;
+begin
+  Close(f1);
+  Close(f2);
+  DataS(f1name, 3, 1);
+  DataS(f2name, 45, 1);
+  DataFileT(f1name, 1, 5);
+  ResultFileT(f2name, 1, 5);
+end;
+
+

. , StartExam, + pt1#####.tst ( +) pt2#####.tst ( ), , «#», + , . : + , .tst, + . , .tst + . +

+

EndExam , + ( — . +DataFileT) +, , + , (. +DataS). + , + , . + Exam , + - + («» ), + . +

+

, StartExam EndExam + : + StartExam, f1 f2 , , + EndExam. +

+

. , + Exam1, m: m = 1 + , m = 2 — : +

+
procedure Exam1(m: integer);
+var
+  n, i: integer;
+  a: array[1..10] of real;
+begin
+  CreateTask(' ');
+  case m of
+  1:
+  begin
+    TaskText('          {N},', 0, 1);
+    TaskText('    \=   {N}  .  ', 0, 2);
+    TaskText('    ,   ,  .\,. ', 0, 3);
+    TaskText('    ,   ', 0, 4);
+    TaskText(' 7  .', 0, 5);
+  end;
+  2:
+  begin
+    TaskText('          {N},', 0, 2);
+    TaskText('    \=   {N}  .  ', 0, 3);
+    TaskText('     .   ', 0, 4);
+    TaskText('  ,     7  .', 0, 5);
+  end;
+  end;
+  StartExam;
+  n := 2 * RandomN(1, 5);
+  for i := 1 to n do
+    a[i] := RandR(-99, 99);
+  writeln(f1,n);
+  for i := 1 to n - 1 do
+    write(f1, a[i]:0:2, ' ');
+  writeln(f1, a[n]:0:2);
+  for i := 1 to n div 2 do
+    case m of
+    1: SwapR(a[2*i - 1], a[2*i]);
+    2: SwapR(a[i], a[i + n div 2]);
+    end;
+  for i := 1 to n do
+    write(f2, a[i]:7:2);
+  writeln(f2);
+  EndExam;
+  SetTestCount(3);
+end;
+
+

, CreateTask , + « ». + , ExamBegin71 ExamBegin72. +

+

10; +, . +

+

. + -99 99, + 6 . +

+

, + ExamBegin ExamTaskC. + , +: «:0:2». , , + 7 +( ExamBegin ExamTaskC, + ). : «:7:2». +

+

, + . , + SetTestCount. +

+

Exam1 ( , 1 2) + InitTask, . + ExamBegin71 ExamBegin72, + « ». + 12 2: +

+
procedure InitTask(num: integer);
+begin
+  case num of
+  1..2:   UseTask('ExamBegin', 70 + num);
+  3..4:   Exam1(num - 2);
+  5..16:  UseTask('ExamTaskC', 20 + num);
+  end;
+end;
+
+

2 CreateGroup, + ( 16). +

+

+ Task + «#» «?»: Task('ExamDemo?'). +

+

[F9] -, + , . ExamDemo4 +(, Exam1 , 2): +

+

+

+ +

+

ExamDemo 12 , + ExamTaskC. ; + , . + , , + . +

+

: + ( ) + . , , + ( — + ). : + . +

+

( ), + — ( ). + , + . , , + , ( + , , + ; , + , + ). +

+

40 +( , PascalABC.NET + ): +

+
const
+  famcount = 40;
+var
+  fam: array[1..famcount] of string :=
+  ('', '', '', '', '',
+   '', '', '', '', '',
+   '', '', '', '', '',
+   '', '', '', '', '',
+   '', '', '', '', '',
+   '', '', '', '', '',
+   '', '', '', '', '',
+   '', '', '', '', '');
+
+

, , + m, 1 2: +

+
procedure Exam2(m: integer);
+var
+  n, i, y, num, max, k: integer;
+  a: array[1..100] of integer;
+  nums: array[1..10] of integer;
+begin
+  CreateTask('   ');
+  case m of
+  1:
+  begin
+    TaskText('     .    ',0,1);
+    TaskText('  {N},    {N}   ',0,2);
+    TaskText('\(\M< > <> < >\m\)',0,3);
+    TaskText('      ,      1990',0,4);
+    TaskText(' 2010.    ,    ,',0,5);
+    TaskText('       ( ',0,0);
+    TaskText(' ,   ).     ',0,0);
+    TaskText('        .',0,0);
+    k := 1;
+    for i := 1 to 100 do
+      a[i] := 2100;
+  end;
+  2:
+  begin
+    TaskText('     .    ',0,1);
+    TaskText('  {N},    {N}   ',0,2);
+    TaskText('\(\M< > <> < >\m\)',0,3);
+    TaskText('      ,      1990',0,4);
+    TaskText(' 2010.    ,    ,',0,5);
+    TaskText('       ( ',0,0);
+    TaskText(' ,   ).     ',0,0);
+    TaskText('        ,',0,0);
+    TaskText('    \=    .',0,0);
+    k := -1;
+    for i := 1 to 100 do
+      a[i] := 0;
+  end;
+  end;
+  StartExam;
+  if Random(2)=0 then
+    n := RandomN(50, 100)
+  else
+    n := RandomN(10, 20);
+  case CurrentTest of
+  1: n := RandomN(10, 20);
+  2: n := RandomN(50, 100);
+  end;
+  if n <= 20 then
+    for i := 1 to 10 do
+      nums[i] := RandomN(1, 100);
+  writeln(f1,n);
+  for i := 1 to n do
+  begin
+    y := RandomN(1990, 2010);
+    if n <= 20 then
+      num := nums[RandomN(1, 10)]
+    else
+      num := RandomN(1, 100);
+    case m of
+    1: writeln(f1, y, ' ', fam[RandomN(1, famcount)],' ', num);
+    2: writeln(f1, num, ' ', fam[RandomN(1, famcount)],' ', y);
+    end;
+    if k*a[num] > k*y then
+      a[num] := y;
+  end;
+  case m of
+  1: for i := 1 to 100 do
+       if a[i] < 2100 then
+         writeln(f2, i, ' ', a[i]);
+  2: while true do
+     begin
+       max := 0;
+       for i := 1 to 100 do
+         if a[i] > max then
+         begin
+           max := a[i];
+           num := i;
+         end;
+       if max = 0 then
+         break
+       else
+       begin
+         writeln(f2, max, ' ', num);
+         a[num] := 0;
+       end;
+     end;
+  end;
+  EndExam;
+  SetTestCount(5);
+end;
+
+

. + . , + . + ExamTaskC, . +

+

TaskText 0. + , + , , + . + . +

+

: a () , + nums ( ). + , + + . +

+

n. +, , ( «»), + «» + . + CurrentTest, 4.11 +PT4TaskMaker, «» : + + ( + ), — ( + « »). ( + ) n + 10..20, 50..100. +

+

n (10–20) + : + 1–100, + + , +/ . , nums 10 +, 10 , + . +

+

, , . + , + . , , +( ), + , +( ), + . + , + — ( ), — +( ExamTaskC). +

+

a + , , + «» ( 0). + , + a ( ). +, , + , . +

+

: +() — ( ), () — +( ). + + , a + , . +

+

Exam2 . +

+

Exam2 case InitTask, + 17 18: +

+ +
procedure InitTask(num: integer);
+begin
+  case num of
+  1..2:   UseTask('ExamBegin', 70 + num);
+  3..4:   Exam1(num - 2);
+  5..16:  UseTask('ExamTaskC', 20 + num);
+  17..18: Exam2(num - 16);
+  end;
+end;
+
+

, CreateGroup, +, 18. +

+

[F9] +( ): +

+

+

+ + +

«?» «# » + Task , + [F9] html- , + , : +

+ +

+

+

CreateTask + ( ), + : ExamDemo3 ExamDemo4 — +« », ExamDemo17 ExamDemo18 — +« ». +

+ + + + + + diff --git a/PABCNetHelp/ForEducation/MakeModules/tmaker_format.html b/PABCNetHelp/ForEducation/MakeModules/tmaker_format.html new file mode 100644 index 000000000..1a24f4b81 --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/tmaker_format.html @@ -0,0 +1,1650 @@ + + + + + + + + + + + + +

PT4TaskMakerNET:

+
+

+

PT4TaskMaker , + . +(), + \. +

+

+ , + : +

+
    +
  • , Symbol ; +
  • ; +
  • ; +
  • , ( + ); +
  • , ( , + ). +
+

, + html- . ( , ) + , . +

+

, , , + ( ) + html- . : +

+
    +
  • ; +
  • ( + , ); +
  • ; +
  • ; +
  • , + . +
+

, html- Task, + ( ) #. , html- + PT4Demo, + . +

+ + +

+

, , + ( S TaskText), +( Cmt Data Result), + () +( S CommentText). +

+

, Data Result, + (. « »). + , S CommentText, + html- (. «Html-»). + , S TaskText, + , html-. +

+

\, , + , html-. +

+

, CreateTask +( SubgroupName), + , CreateGroup ( GroupDescription), + . + , html-. + (–) (—) + : -- ---. 4.10, + html- . +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + +Html- +
+ +
+\ + + + , ( *********, + 1) +
+\0 + + + , +( *********, + 999) +
+ +
+\, + + + + + +&nbsp; +
+\; + + + + + +&nbsp; +
+~ + + + + + +&nbsp; +
+\q + + + + + +&nbsp;&nbsp; +
+\Q + + + + + +2 +
+ +
+\\ + + (\) + +\ + +\ +
+\& + + (&) + +& + +&amp; +
+\{ + + ({) + +{ + +{ +
+\} + + (}) + +} + +} +
+\~ + + «» (~) + +~ + +~ +
+\^ + + «» (^) + +^ + +^ +
+\_ + + (_) + +_ + +_ +
+\. + + (…) + +...
( ) +
+&#8230; +
+\= + + (—) + + + +&#8212; +
+\: + + , (–) + + + +&#8211; +
+\- + + «» (−) + + + +&#8722; +
+\< + + («) + +« + +&#171; +
+\> + + (») + +» + +&#187; +
+\* + + (·) + +· + +&#183; +
+\+ + + «-» (±) + +± + +&#177; +
+\o + + (°) + +° + +&#176; +
+\x + + « » (×) + +× + +&#215; +
+\a + + «» (α) + +α + +&#945; +
+\p + + «» (π) + +π + +&#960; +
+\e + + «» (ε) + +ε + +&#949; +
+\l + + « » (≤) + + + +&#8804; +
+\g + + « » (≥) + + + +&#8805; +
+\n + + « » (≠) + + + +&#8800; +
+\X + + «bullet» (•) + + + +&#8226; +
+\hXX, XX — 16- + + XX +ANSI Latin-1 ( 1252) + + + +&#DDD;
+(DDD — Unicode) +
+\HXX, XX — 16- + + XX Windows- Symbol + + + +&#DDD;
+(DDD — Unicode)
+
<font face="Symbol">&#DDD;</font>
+(DDD — , 16- XX) +
+ , +
+\R + + + +Sqrt(
+(Pascal, PascalABC.NET, VB.NET, C#)
+sqrt(
+(C++, Python, Java)
+Sqr(
+(Visual Basic 5  6)
+
+( +
+\r + + + +)
+
+)<sup>1/2</sup> +
+\t + + «True» + +True (Pascal, PascalABC.NET, Visual Basic, VB.NET, Python)
+true (C++, C#, Java) +
+\f + + «False» + +False (Pascal, PascalABC.NET, Visual Basic, VB.NET, Python)
+false (C++, C#, Java) +
+\N + + + +nil (Pascal)
+NULL (C++) +
+\O + + + +null (C#, Java)
+Nothing (VB.NET)
+nil (PascalABC.NET)
+None (Python) +
+\d + + , + +Dispose (PascalABC.NET, C#, VB.NET)
+dispose (Python, Java)
+
+ +
+_ + + + +C + +<sub></sub> + +
+^ + + + +C + +<sup></sup> +
+_{ + + + + + +<sub> +
+^{ + + + + + +<sup> +
+} + + ( ) + + + +</sub>

</sup> +
+ ( ) +
+\B + + + + + +<b> +
+\b + + + + + +</b> +
+\I + + + + + +<i> +
+\i + + + + + +</i> +
+\S + + + + + +<span class="ptSpecial"> +
+\s + + + + + +</span> +
+ html- ( ) +
+{ + + + +  + +<i> +
+} + + + +  + +</i> +
+\M + + + +  + +<tt> +
+\m + + + +  + +</tt> +
+\| + + + +  + +<br> +
+\P + + + +  + + ptTaskContinue ( ) + ptComment ( ) +
+\[ + + + +  + + ptTaskCenter ( ) + ptCommentCenter ( ) +
+\] + + + +  + + ptTaskContinue ( ) + ptCommentContinue ( ) +
+\( + + + +  + + ptTaskQuote ( ) + ptCommentQuote ( ) +
+\) + + + +  + + ptTaskContinue ( ) + ptCommentContinue ( ) +
+\J + + ( + r, l, c, + &) + +  + +<table> +
+\j + + + +  + +</table> +
+& + + + +  + + <td> ; + <tr> +
+

+ +

+ +

, + ( UseTask), + , + . , , + . + , , + . + «» , + + UseTask. +

+

, + html-, + ( , TeX, + ). + : +

+
    +
  • =, <, > ~; + (> 0), + : (>\,0); +
  • ~ : ~{a} ~{b}; +
  • + \;; +
  • \* / ; + , ; + . +
+

( Begin39; + , , , + ): +

+
TaskText('  \I \i ' +
+  '{A}\*{x}^2\;+\;{B}\*{x}\;+\;{C}~=~0, ', 0, 1);
+TaskText(' ~{A}, {B}, {C} ' +
+  '(~{A}  ~0),  ,', 0, 2);
+TaskText('   . ' +
+  '  ,  ',0,3);
+TaskText('   .   ' +
+  '   ', 0, 4);
+TaskText('\[{x}_{1,\,2}~=~(\-{B}\;\+\;\R{D}\r)/(2\*{A}),\] ' +
+  ' {D}~\= \I\i, ' +
+  ' {B}^2\;\-\;4\*{A}\*{C}.', 0, 5);
+
+

: +

+

+

html- : +

+

+ +

\< \>. +

+

\t, \f, \N, \O + , , + . +

+

, \q, \Q, \P, \[, \(, +\], \), \| &, +( html-). +

+

, \S \s, + , html- + , + , +( html- «Begin39»). + , (, + , , + «» ). +

+

{ } , + html-. + , + . +

+

, + . + . + \I, \B, \S , + . +

+ +

. , + TaskText CommentText, , . + ( ), + , TaskText CommentText. +

+ +

r, l, c + (r — , +l — , c — ). + . +( \,). +

+

, , +( If26): +

+
TaskText('  ~{x}   ' +
+  ' ~{f},', 0, 1);
+TaskText('  :', 0, 2);
+TaskText('\[\Jrcrl&\,&\,&       \-{x},&  {x}~\l~0,',
+  26, 3);
+TaskText('&{f}({x})&~=~&{x}^2,&  0~<~{x}~<~2,', 26, 4);
+TaskText('&\,&\,&        4,&  {x}~\g~2.\j\]', 26, 5);
+
+

: +

+

+

html- : +

+

+

\| , +( ). + html- , , + ( ) . +

+

, + : , , + . + TaskText X + ( ), 26 — + , +. +

+

+ TaskText, 4.11. + , + , (#13 #10). + + , , +, , +. , TaskText + . + + , , + \, + . ( + ) . + , + TaskText ( + , ; + ): +

+
TaskText('  ~{x}    ~{f},'#13 +
+'  :'#13 +
+'\[\Jrcrl&\,&\,&       \-{x},&  {x}~\l~0,     \ '#13 +
+'&{f}({x})&~=~&{x}^2,&  0~<~{x}~<~2, \ '#13 +
+'&\,&\,&        4,&  {x}~\g~2.\j\]     \ ');
+
+

\P . + , , ( , ). + , + html- . \P html- , + . +

+ + +

+

«» \h \H, + , + ANSI Latin-1 ( \h) + Windows- Symbol ( \H). + , + ; A, B, C, D, E, F . + , + «?» ( ). +

+

\h ( Latin-1) 128–255, + , , 160 (A0) «» 173 (AD). + Ansi Latin-1 128–159 Unicode ; + html- Unicode. +

+

\H , Windows- Symbol. + , ASCII ANSI Latin-1 (, ) + (, , + : A, B, E, H, X . .). , 230–239 243–254, + . +

+

, + - (Microsoft Internet Explorer, +Mozilla Firefox Opera) -. + Internet Explorer Firefox Windows, + Symbol, Opera . , Opera Firefox + Unicode-, + Windows-, Internet Explorer, . + \H html- , + Internet Explorer ( Mozilla Firefox): + Windows- Symbol. Opera ( , Windows) + . +

+

. Windows- Mozilla Firefox +« - ». + «», + : « | ...», + «» + «» « » +«...». +

+

+ (. , «»). + . +

+

(∩, 8745) + Windows-, , +(, , . .), . + , , html- , + ( \Hc7) + Symbol. +

+

, \h \H. + , \h, — , \H. + , , Opera, + . +

+ +

1. , \h +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\h80
 \h82
\h83
ƒ
\h84
\h85
\h86
\h87
\h88
ˆ
\h89
\h8a
Š
\h8b
\h8c
Œ
 \h8e
Ž
  \h91
\h92
\h93
\h94
\h95
\h96
\h97
\h98
˜
\h99
\h9a
š
\h9b
\h9c
œ
 
\h9e
ž
\h9f
Ÿ
 \ha1
¡
\ha2
¢
\ha3
£
\ha4
¤
\ha5
¥
\ha6
¦
\ha7
§
\ha8
¨
\ha9
©
\haa
ª
\hab
«
\hac
¬
 \hae
®
\haf
¯
\hb0
°
\hb1
±
\hb2
²
\hb3
³
\hb4
´
\hb5
µ
\hb6
\hb7
·
\hb8
¸
\hb9
¹
\hba
º
\hbb
»
\hbc
¼
\hbd
½
\hbe
¾
\hbf
¿
\hc0
À
\hc1
Á
\hc2
Â
\hc3
Ã
\hc4
Ä
\hc5
Å
\hc6
Æ
\hc7
Ç
\hc8
È
\hc9
É
\hca
Ê
\hcb
Ë
\hcc
Ì
\hcd
Í
\hce
Î
\hcf
Ï
\hd0
Ð
\hd1
Ñ
\hd2
Ò
\hd3
Ó
\hd4
Ô
\hd5
Õ
\hd6
Ö
\hd7
×
\hd8
Ø
\hd9
Ù
\hda
Ú
\hdb
Û
\hdc
Ü
\hdd
Ý
\hde
Þ
\hdf
ß
\he0
à
\he1
á
\he2
â
\he3
ã
\he4
ä
\he5
å
\he6
æ
\he7
ç
\he8
è
\he9
é
\hea
ê
\heb
ë
\hec
ì
\hed
í
\hee
î
\hef
ï
\hf0
ð
\hf1
ñ
\hf2
ò
\hf3
ó
\hf4
ô
\hf5
õ
\hf6
ö
\hf7
÷
\hf8
ø
\hf9
ù
\hfa
ú
\hfb
û
\hfc
ü
\hfd
ý
\hfe
þ
\hff
ÿ
  
+

+ +

2. , \H +

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
\H22
"
\H24
$
\H27
'
\H2d
\H40
@
\H44
Δ
\H46
Φ
\H47
Γ
\H4c
Λ
\H50
Θ
\H51
Θ
\H53
Σ
\H56
ς
\H57
Ω
\H58
Ξ
\H59
Ψ
\H5c
\
\H5e
^
\H61
α
\H62
β
\H63
χ
\H64
δ
\H65
ε
\H66
f
\H67
γ
\H68
η
\H69
ι
\H6a
φ
\H6b
κ
\H6c
λ
\H6d
μ
\H6e
ν
\H70
π
\H71
θ
\H72
ρ
\H73
σ
\H74
τ
\H75
υ
\H76
v
\H77
ω
\H78
ξ
\H79
ψ
\H7a
ζ
\Ha1
¡
\Ha2
\Ha3
\Ha5
\Ha7
\Ha8
\Ha9
\Haa
\Hab
\Hac
\Had
\Hae
\Haf
\Hb2
\Hb3
\Hb5
µ
\Hb6
\Hb9
\Hba
\Hbb
\Hbd
\Hbe
\Hbf
¿
\Hc0
א
\Hc1
Á
\Hc2
Â
\Hc3
Ã
\Hc4
Ä
\Hc5
Å
\Hc6
Æ
\Hc7
Ç
\Hc8
È
\Hc9
É
\Hca
Ê
\Hcb
Ë
\Hcc
Ì
\Hcd
Í
\Hce
Î
\Hcf
Ï
\Hd0
Ð
\Hd1
Ñ
\Hd5
\Hd6
\Hd9
Ù
\Hda
Ú
\Hdb
Û
\Hdc
Ü
\Hdd
Ý
\Hde
Þ
\Hdf
ß
\He0
\He1
\He5
\Hf1
\Hf2
  
+

+ diff --git a/PABCNetHelp/ForEducation/MakeModules/tmaker_main.html b/PABCNetHelp/ForEducation/MakeModules/tmaker_main.html new file mode 100644 index 000000000..c154529a9 --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/tmaker_main.html @@ -0,0 +1,232 @@ + + + + + + + + + + + + +

PT4TaskMakerNET:

+
+ + +

+ +

PT4TaskMaker + Programming Taskbook. +

+

+ 4.11, , + , + Pascal, C++ C#, + Pascal PascalABC.NET. + PascalABC.NET PT4TaskMakerNET. +

+

+ +(dll-). Dll- + , Lib +. +, - + , + . , + PT4Demo PT4Load. + dll- + , , + PascalABC.NET; dll- + PT4\Lib PascalABC.NET . +

+ + +

+

, , + , . +

+

, PT4TaskMaker: +

+ + +

+ +

, , , +, , . + 9 , . + , , ( ), + ; + (, , ).

+ +

, ( , ) + 9 ( 25). +

+ +

. + Task, + (, « », + , ). + , PT4Load, + PT4Demo ( + ). +

+ +

, , + , . + +( ), , + . + 9 . +

+ + +

+ + +

, (dll-), + (. «»). +

+

, dll-, . + PT4< >< >, + < > , _ru _en. +, TMDemoPas PT4TMDemoPas.dll, PT4TMDemoPas_ru.dll + PT4TMDemoPas_en.dll. + , (ru — , +en — ). , , + ( ). + : + ; , + ; , + ( ) Lib . +

+ +

. + , + Pascal PascalABC.NET: +

+ +
library PT4MakerDemo;
+
+uses PT4TaskMakerNET;
+
+// ,   
+...
+
+procedure InitTask(num: integer);
+begin
+  //       ,
+  //    ;   
+  //  num;   , 
+  //  ,    case
+  ...
+end;
+
+procedure inittaskgroup;
+begin
+  //  ,     
+  //  CreateGroup    , 
+  //    ()     .
+  //        
+
+  CreateGroup('TMDemoAbc', '   (   PascalABC.NET)',
+    '. . , 2013', 'qwqfsdf13dfttd', 8, InitTask);
+  ...
+end;
+
+procedure activate(S: string);
+begin
+  //  ,    
+  //  .        
+
+  ActivateNET(S);
+end;
+
+begin
+end.
+
+ +

, + , - + . +, , Visual Basic 1C + , Pascal C++ -, + .NET, Python Java. . , , «». +

+ +

. + , html- (html- + , + Task '< >#', , 'TMDemoAbc#', + PascalABC.NET. + , + , ( ). , + , , + +( , , + , . .). + , +html- . +. , + , «». +

+ + +

PascalABC.NET

+

PascalABC.NET + pas- , + , , + « ». + PT4TaskMakerNET; + Lib PascalABC.NET. +

+

[F9] . +

+

PascalABC.NET + , + , + PT4Load + . , + , . , + TMDemoAbc : +

+
uses PT4;
+begin
+  Task('TMDemoAbc1?');
+end.
+
+

+TMDemoAbc , + ( + «?», ). + + Task. , + «?» : Task('TMDemoAbc?'). + , . +

+ + + + + diff --git a/PABCNetHelp/ForEducation/MakeModules/tmaker_proc1.html b/PABCNetHelp/ForEducation/MakeModules/tmaker_proc1.html new file mode 100644 index 000000000..3231e4337 --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/tmaker_proc1.html @@ -0,0 +1,788 @@ + + + + + + + + + + + + +

PT4TaskMakerNET:

+
+ +

, + . +

+ +

+

: +

+
    +
  • (GroupName) — , 1 25 +— , +( 9 , , + ); (Begin, Integer . .); +, , ; +
  • (GroupDescription) — ; + html- ; +
  • (GroupAuthor) — + (, , , e-mail . .; ); +
  • (GroupKey) — , + results.dat results.abc , ; +
  • (TaskCount) — 1 999, ; +
  • (InitTaskProc) — , + ( ). +
+

. +, , , . +, , , , + , «» + . , , +. , + , . , + , , +« », Teacher Pack. +

+

. PT4Demo PT4Load + ( ). + + ( , , , «»), + - «^» (). + «^» +« , ». +

+

CreateGroup, + : +

+
procedure CreateGroup(GroupName, GroupDescription, GroupAuthor,
+  GroupKey: string; TaskCount: integer; InitTaskProc: TInitTaskProc);
+
+

TInitTaskProc : +

+
type TInitTaskProc = procedure(n: integer);
+
+

CreateGroup inittaskgroup, , . +

+

CreateGroup + . , , , + . : +

+
  • inittaskgroup ( , , ); +
  • dll-, (, dll- +PT4< > PT4< >< >); + pcu- ; +
  • Programming Taskbook ; +
  • ( , ); +
  • ; +
  • ; +
  • 1–999; +
  • InitTaskProc . +
+ +

+
+
const
+  xCenter = 0;
+  xLeft = 100;
+  xRight = 200;
+
+

, + : xCenter + , , +, xLeft xRight + . + + X Data Result, TaskText. +

+ + +
+
procedure CreateTask([SubgroupName: string]);
+
+

+ ; SubgroupName , + ( , +; - ). + , - . + ; , + ( GroupDescription CreateGroup). + .

+

4.9 CreateTask +, MPI-. +

+ + +
+
procedure TaskText(S: string[; X, Y: integer]);
+
+

S, + Y ( 1 5) +, X. 1; X , + ( ) 78 . + X xCenter, xLeft xRight; , + X 0, . + ( , ); X + . + ; 1 , + 3, 2 — 2 4, 3 — 2, 3 4, +4 — 2 5 ( ). + , + html- . +

+ +

, , + , ( + , ). + , , , Y + 0. 200.

+

S +. +

+

S , « + ». , S +( , ). +

+

TaskText html- . + , , , +, ( + ). +

+

, . +

+

TaskText S 4.11 . + S , + #13, #10 #13#10. + ; - , + . ; + , ( +, 3, . .). +- , +; , ( ) + «\» ( ). + + +


+
procedure DataB ([Cmt: string;] B: boolean; X, Y: integer);
+procedure DataN([Cmt: string;] N: integer; X, Y, W: integer);
+procedure DataN2([Cmt: string;] N1, N2: integer; X, Y, W: integer);
+procedure DataN3([Cmt: string;] N1, N2, N3: integer; X, Y, W: integer);
+procedure DataR([Cmt: string;] R: real; X, Y, W: integer);
+procedure DataR2([Cmt: string;] R1, R2: real; X, Y, W: integer);
+procedure DataR3([Cmt: string;] R1, R2, R3: real; X, Y, W: integer);
+procedure DataC([Cmt: string;] C: char; X, Y: integer);
+procedure DataS([Cmt: string;] S: string; X, Y: integer);
+
+

Data +. + , - Cmt, + , X +Y ( 1; 78 ). + Y, 5, + . + TaskText, X +: 0 ( ), +100 ( ), +200 ( ). + xCenter, xLeft xRight.

+

W ( + ). , + W , + . + ( SetPrecision, ). +

+ + +

; + , 3 , , + , 5 , + . + L + 2 , L — ( + ). +, . +

+

Data, 200 ( +, , , DataN2 DataN3, ). + , + , . , + , , . + , : +( ), — . +

+

Cmt, , + (, ). +

+

; . +

+

, Cmt , 4.11 . +

+ +
+
procedure DataComment(Cmt: string; X, Y: integer);
+
+

Cmt, + - . , + , 200. +X Y — , + Data. +

+ +
+
procedure ResultB ([Cmt: string;] B: boolean; X, Y: integer);
+procedure ResultN([Cmt: string;] N: integer; X, Y, W: integer);
+procedure ResultN2([Cmt: string;] N1, N2: integer; X, Y, W: integer);
+procedure ResultN3([Cmt: string;] N1, N2, N3: integer; X, Y, W: integer);
+procedure ResultR([Cmt: string;] R: real; X, Y, W: integer);
+procedure ResultR2([Cmt: string;] R1, R2: real; X, Y, W: integer);
+procedure ResultR3([Cmt: string;] R1, R2, R3: real; X, Y, W: integer);
+procedure ResultC([Cmt: string;] C: char; X, Y: integer);
+procedure ResultS([Cmt: string;] S: string; X, Y: integer);
+
+

+ . Cmt + . + + « ». +X, Y W — , + Data. 200 .

+

, , + ( W ), W , + . , + , , «» , + , + «*» () . + , ( , + ). + , + ; 1–2 + , , . +

+

Result , , , + , . , , + + : . +

+

Cmt, , + . +

+

, , , + , , . , , + , , , + (, + SetPrecision). +

+

; . +

+

, Cmt , 4.11 . +

+ +
+
procedure ResultComment(Cmt: string; X, Y: integer);
+
+

Cmt, + - . , + + , 200. +X Y — , + Data. +

+ +
+
procedure SetPrecision(N: integer);
+
+

N , + . + 2. 0, + , + , . , + SetPrecision, , + . + . +

+ +
+
procedure SetRequiredDataCount(N: integer);
+
+

N + , + . + . N , + ; , + , + . +

+

, , Series10. + N True, , + False . , , + True . + + SetRequiredDataCount, , + , + ( + « »). +

+

SetRequiredDataCount + , + : . + , + . +

+

+ + . +SetRequiredDataCount(N) N, + , + . +

+ +
+
procedure SetTestCount(N: integer);
+
+

N +, , . + 5. + N 2 9; N . +

+

( ), + , , : +« . 2 ( 5)». + , + 0, ( ) . +

+ +
+
function CurrentTest: integer;
+
+

4.11 . + , + . + , 1. + , 0. +

+

, +CurrentTest, ( 4.10 ) + CurrentTest 0. +

+

+ ( , +). + ; , + ( 9) + . CurrentTest, + , . + «» + , +- ; +(, ), + . , + CurrentTest 0, + . +

+

, +Array32, . +, , + + ( « », + ). + ( n — , +k — ): +

+
n := 5 + Random(6);
+case Random(4) of
+0: k := 1;
+1: k := n;
+2, 3: k := 2 + Random(n-2);
+end;
+
+
+

, + Random(4) 0 1, + . ( ) , + 2 3; + « ». + , , + , , + . +

+

case , + k + : +

+
n := RandomN(5, 10);
+case Random(4) of
+0: k := 1;
+1: k := n;
+2, 3: k := RandomN(2, n-1);
+end;
+case CurrentTest of
+2: k := n;
+3: k := RandomN(2, n-1);
+5: k := 1;
+end;
+
+
+

, () , + , k - . +

+

, RandomN, + 4.11 . +

+

CurrentTest + ( ) , + 4.11. +

+ + + +
+
function RandomN(M, N: integer): integer;
+function RandomR(A, B: real): real;
+
+

, + . + , + CreateGroup. + , + . +

+

RandomN(M, N) , + M N–1 . + , M. +

+

RandomR(A, B) , + [AB). +, A. +

+

+ Random Pascal. + +


+
function Center(I, N, W, B: integer): integer;
+
+

, + N . + , I- + (I 1 N) , + W , + B . Center + X Data +Result ( , ). +

+

, + : +

+
+n := RandomN(2, 10);
+DataN('N = ', n, 0, 2, 1);
+for i := 1 to n do
+begin
+  a[i] := RandomR(-9.99, 9.99);
+  DataR(a[i], Center(i, n, 5, 1), 4, 5);
+end;
+
+

( ) N , + 2 10 +( «N = »). ( ) +, Center + . -9 9, . . + , , — + -; , + , 5 ; + : Center DataR. + +1 ( , Center). +

+

+ Center ( 4.11 , + ). +

+ +

+

4.9 , + Data Result, DataComment ResultComment, + Y , 5. + Y + 5, + , + . + , + Y, + 5. , + . + ; + , . + . +

+

, +«» ( + ). + - Y, + 5, , , + « + ». , + , + , , + « + ». +

+

, , + . + , , + + . +, 1300 , Programming Taskbook, + . + + Align, Programming Taskbook for Bio. +

+

, 4.11 , + , + . +

+ +

+

+
+
procedure UseTask(GroupName: string; TaskNumber: integer);
+
+

+ TaskNumber GroupName. + . , + « +», , , html- , + . +

+

- , + . +

+

GroupName + ( + #). , Demo Demo10 + Proc46, Demo11 — Proc49, Proc46, + Proc49 , 2. , + Demo11 Demo10, Demo8 ( +« » Demo11, Proc46 Proc49). + 2 : UseTask('Proc#2',49). +

+ +

+ +

, «». + , , . . +( + CreateTask). +

+

, html- . + () + . , . +

+

+ , , + . , + , html- . +

+

+ + .

+ +
+
procedure CommentText(S: string);
+
+

S , + . + S , +. , +\P ( ).

+ +
+
procedure UseComment(GroupName: string[; SubgroupName: string]);
+
+

UseComment SubgroupName + GroupName , SubgroupName , + GroupName. + . GroupName SubgroupName + .

+

GroupName SubgroupName, ; + . +

+

CommentText UseComment CreateGroup; + . + - , + Subgroup, .

+ + + +
+
procedure Subgroup(SubgroupName: string);
+
+

SubgroupName +. +( , dll-, inittaskgroup). +

+ Subgroup , + . Subgroup — + (, + CreateGroup).

+ +

+ +
+
const
+  lgPascal = $0001;
+  lgVB = $0002;
+  lgCPP = $0004;
+  lg1C = $0040;
+  lgPython = $0080;
+  lgCS = $0100;
+  lgVBNET = $0200;
+  lgPascalNET = $0400;
+  lgJava = $10000;
+  lgWithPointers = $003D;
+  lgWithObjects = $FFF80;
+  lgNET = $FF00;
+  lgPascalABCNET = $0401;
+  lgAll = $FFFFFF;
+
+

, CurrentLanguage, + , + (. . ) . + lgPascal, lgVB, lgCPP, lgCS, +lgVBNET, lgPascalABCNET, lg1C, lgPython, lgJava , + (Pascal, Visual Basic, C++, C#, Visual Basic .NET, +PascalABC.NET, 1:, Python, Java). + . + lg1C 4.9 ( + PT for 1C — + 1:), lgPython — 4.10 ( + Python), lgJava — 4.11 ( + Java). +

+

+(. . ) , + : +

+
  • lgAll — , +
  • lgNET — .NET +( C# Visual Basic .NET), +
  • lgWithPointers — , + ( Pascal C++), +
  • lgWithObjects — , + ( .NET, + Python Java). +
+ +

, PascalABC.NET, + Pascal .NET. + lgPascal lgPascalNET; , , , +lgWithPointers, lgWithObjects lgNET. PascalABC.NET lgPascalABCNET. +

+ +
+
function CurrentLanguage: integer;
+
+ +

, , . + + , , + , ; + . , , + .NET, : +

+
CurrentLanguage and lgNET <> 0
+
+

PascalABC.NET CurrentLanguage +lgPascalABCNET. +

+ + + +
+
function CurrentLocale: string;
+
+ +

, , . . , + . 4.11 CurrentLocale 'ru' +( ) 'en' ( ). +

+ +
+
function CurrentVersion: string;
+
+ +

4.10 . + 'd.dd'. +, 4.11 '4.11'. , 4.10, + '4.00'. +

+ + +

+

PT4TaskMaker + : (Word), + (Sentence) (Text). +

+ +
+
const
+  SampleError = '#ERROR?';
+  MaxLineCount = 50;
+
+function WordCount: integer;
+function SentenceCount: integer;
+function TextCount: integer;
+function WordSample(N: integer): string;
+function SentenceSample(N: integer): string;
+function TextSample(N: integer): string;
+
+function EnWordCount: integer;
+function EnSentenceCount: integer;
+function EnTextCount: integer;
+function EnWordSample(N: integer): string;
+function EnSentenceSample(N: integer): string;
+function EnTextSample(N: integer): string;
+
+

WordSample, SentenceSample TextSample + , , . . , +(. CurrentLocale): + , — . , + En, . +

+

, Count, + . 4.11, , , + 116 , 61 85 , . +

+

WordSample/EnWordSample SentenceSample/EnSentenceSample + N (  0).

+

TextSample/EnTextSample , , + N (  0). + #13#10 ( ). , + MaxLineCount. ; + , (« ») . + . +

+

N , , SampleError. +

+

«» . +

+

- () . + « » , +( ): +

+
  • , ; +
  • , ( — «», — + «E»). +
+

- 76 ; , +(, ). +

+

, , +(. «»). +

+ + + + + + diff --git a/PABCNetHelp/ForEducation/MakeModules/tmaker_proc2.html b/PABCNetHelp/ForEducation/MakeModules/tmaker_proc2.html new file mode 100644 index 000000000..0d5efd126 --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/tmaker_proc2.html @@ -0,0 +1,709 @@ + + + + + + + + + + + + +

PT4TaskMakerNET:

+
+ +

, + . +

+ +

+ +

PT4TaskMaker ( + ) 10 . + + , (, , , ). + 999 ( ); + , 999 , , 999, . + + , +, + text 70 .

+

, , + CreateTask.

+

, . + , + , .tst. +

+

, , , + . + , — . +

+
+
procedure DataFileN(FileName: string; Y, W: integer);
+procedure DataFileR(FileName: string; Y, W: integer);
+procedure DataFileC(FileName: string; Y, W: integer);
+procedure DataFileS(FileName: string; Y, W: integer);
+procedure DataFileT(FileName: string; Y1, Y2: integer);
+
+

DataFile , N, R, C, S, + , , +. DataFileT . + , +, , . + FileName.

+

, + , DataFileT, + . , , +Y , + , W + , . + W, + ( + ); + W, , +, «*» () . + + W , + , + — , + . , + , SetPrecision; + + . , +, , + . + .

+

DataFileT Y1 + Y2 + , + . + .

+

Y, Y1, Y2 + 1 5 (Y Y1 + 0; ); Y1 + Y2. W + 1–72.

+

+DataFile , + . + . DataFile + , +Data, «», .

+

DataFile + . + . + ; + ( ) + .

+

+ , + , «» , + . +, + , +DataFile. , + , . + , , + .

+

( — ., , File4) + . + DataFile Y Y1 + 0. , + , DataFile + .

+

, + . , + Pascal; + , . + PascalABC.NET + file of ShortString. +

+

+ +«». +

+ +
+
procedure ResultFileN(FileName: string; Y, W: integer);
+procedure ResultFileR(FileName: string; Y, W: integer);
+procedure ResultFileC(FileName: string; Y, W: integer);
+procedure ResultFileS(FileName: string; Y, W: integer);
+procedure ResultFileT(FileName: string; Y1, Y2: integer);
+
+

ResultFile , N, R, C, +S, + + , , +. ResultFileT + . + , +, , . + , , , + .

+

ResultFile + DataFile, +, Y, Y1, Y2 + . + ResultFile , +DataFile.

+

ResultFile + + , +. , , + . +, ResultFile, + ( + ). , + . , + ResultFile, + , +. , , + . +; , +.

+

DataFile, + , +ResultFile Y +Y1 0 (., , File1). , , + + .

+

+, (. + DataFile). +

+ +

+ +

+ :

+
+
type
+  PNode = ^TNode;
+  TNode = record
+    Data : integer;
+    Next : PNode;
+    Prev : PNode;
+    Left: PNode;
+    Right: PNode;
+    Parent: PNode;
+  end;
+
+

- +( Next Prev), ( Left Right), + ( Left, Right Parent). + , , (, , + ), + , «ptr», +, , P1 = ptr, PX = ptr . . + 36 , +0 35. 0 9 +(P0–P9), 10 35 — +(PA–PZ). + , «ptr» + «nil» ( , + ), , P1 = nil Pascal, +P1 = NULL C++. + , , + . +

+ +
+
procedure SetPointer(NP: integer; P: PNode);
+
+

+NP ( P, + ). , + , , +NP.

+

NP 0  35; + (. ). SetPointer + NP , .

+ +
+
procedure DataP([Cmt: string;] NP: integer; X, Y: integer);
+procedure ResultP([Cmt: string;] NP: integer; X, Y: integer);
+
+

DataP ResultP NP , +, +. + P# =, # , + ( NP 0 9 — , NP 10 35 — + A Z). ; + : ptr + nil . + , Cmt, + (, + Cmt = '  : ' NP = 6 + : : P6 = ptr). + Cmt . + DataP ResultP , + . Y + ( 1 5), X — ( 1 78; + , , + ).

+

, Cmt , 4.11 . +

+ + +
+
procedure DataList(NP: integer; X, Y: integer);
+procedure ResultList(NP: integer; X, Y: integer);
+
+

DataList ResultList «- +» , , , + . NP ( + SetPointer), + , . . . + , . .

+

+ + ; , + ( ShowPointer), + — (, Data ) + .

+

, + Data (, .23.). + , , + , , , . +, , , , + (, (23)), Next, + ( 46 - **). , + . + (. 3).

+

+ « » 14 TNode, + Data –9 99, Data + . 10–99, + (, — +. Dynamic70). + , + — . +

+

+ , Next Prev; + : «=». + , Next, Prev + , + (, - TNode). + : «-». +

+

DataList ResultList + , + . ShowPointer, +SetNewNode SetDisposedNode + . +

+ +
+
procedure DataBinTree(NP, X, Y1, Y2: integer);
+procedure ResultBinTree(NP, X, Y1, Y2: integer);
+procedure DataTree(NP, X, Y1, Y2: integer);
+procedure ResultTree(NP, X, Y1, Y2: integer);
+
+

+( ) (DataBinTree DataTree) + (ResultBinTree ResultTree) . + « — » («left child — right sibling»). + DataList ResultList, , + PNode, SetPointer. + ; + , . + , , ( ) ; + Y1 Y2 . + «» ( ), + : X , + . , + , ; , X, . +

+

+ , + . ShowPointer, +SetNewNode SetDisposedNode + . +

+

, , . + , Data, +( , , 234, : +2*). + («-» «=»); + , , , + ( — .  6). + Parent; . +

+

. + ; , DataBinTree ResultBinTree. + ( — . + 5  6). + ( ); + , DataTree + ResultTree. , Left P, , P + () , , Right, + -«» P , P. + , , + (.  7). +

+

, , : +

+
  • , + , , .23. ( + SetNewNode); +
  • , , , : +(23); +
  • , +( , , , ); +
  • Left Right , +, , , , , , + ( , ). +
+

, , . Left Right + , . +

+

18; , 4 , + , 4 ( ). , , + 78, 18 . +, 16 , 11 ; + , , , . +

+

, , 18. + , 0. , + ; . +

+

, , + , +(, , , , ). + , . + « », , , +, , « », + , , , +(.  8). + , . +

+

, , 0 ( ). + , , , + Parent nil. + , — . +

+

, ; + , -, , + , Left Right , + . , :

+

  • , +
  • , , . +
+

, , 18. +

+ +

+ . , + Pascal; + nil + — (. SetObjectStyle), .

+

1 +

+
P1
+24 - 23 >nil
+
+

+ P1; + : «–» + , , Next ( 24) ( 23). + Next nil. +

+

2 +

+
     P1        P2
+nil< 14 = 23 = 34 >nil
+
+

+ ( , — Next Prev, — + «=»), : +P1 , P2 — . +

+

3 +

+
          P0
+<< = 15 - 23 = 34 = >>
+
+

+ ( +«<<» «>>»), . + , 23 ( P0) 15, +. . Prev 23 (, nil). + , + . +, ( 15 23) , . . Next 15 23. +

+

4 +

+
PXPY
+95 - 63 -.34.- >>
+
+

+ . . +-, 95 (PX PY), +, -, 34 New +( ). , , . + SetNewNode. +

+ +

5 +

+

+

 4. ( Data 96) + P1. +

+

6 +

+

+

( ). +

+

7 +

+

+

( ). + 13 : 71, 73 29. , + Left () , Right — () -. +

+

8 +

+

+

. + . , , + . +

+ + +
+
procedure ShowPointer(NP: integer);
+
+

NP + . , ShowPointer(1) +P1  1, 2  5. NP + , + ShowPointer . + NP +, .

+

+( , ). + ShowPointer + ; , +, (, P3P6). + , + . , + . + , ShowPointer , + (, + ), + — (, P1P2P3*). + , P*. + * .

+

+ , (.  8), + ShowPointer , + SetNewNode ( + ShowPointer « P1»). +

+
+

[Pascal] +

+
procedure SetNewNode(NNode: integer);
+
+

[C++]

+
void SetNewNode(int NNode);
+
+

NNode (  1) + , New ( + — .  4). + (.  8); + , + ( , 1; + . Tree13). +

+

+ ( + Result: ResultList, ResultBinTree, ResultTree). + NNode, + .

+

, NNode + , + ShowPointer SetNewNode.

+

( New Pascal ) + , + , () +, « ».

+ +
+
procedure SetDisposedNode(NNode: integer);
+
+

NNode ( + 1, ), + . + ( + Data: DataList, DataBinTree, DataTree). + NNode, + .

+

, SetDisposedNode, . + + , + .

+ + +
+
procedure SetObjectStyle;
+
+

« » + PascalABC.NET. + , TNode PNode, + Node ( + .NET , , PascalABC.NET). +

+

Node . + , TNode, PNode . + .NET, Python Java, + Node. , 4.11 , +, , : + PascalABC.NET. + SetObjectStyle ( , Node, + ). +

+

PascalABC.NET, + , + («» «», «» + «» . .), , + , « », SetObjectStyle +( « », + ). SetObjectStyle CreateTask +( , + , + ). , : +

+
    +
  • ptr Node (. . Node); +
  • P A, , +A1 = Node ( + , P1, P2 + . . A1, A2 . .). +
+

( P A) , + . , + ,  1, : +

+
A1
+24 - 23 >nil
+
+

nil , PascalABC.NET , +«» . .NET «» + ; , C# null, VB.NET — + Noth ( Nothing). +

+

, ObjDyn ObjTree, PascalABC.NET. + Dynamic Tree, . +

+ +

MPI-

+ +

, , + , 4.9 Programming Taskbook. + + Programming Taskbook for MPI. +

+ +
+
procedure CreateTask([SubgroupName: string;] var ProcessCount: integer);
+
+

CreateTask + +. CreateTask + ProcessCount. SubgroupName + , : + , , + . + SubgroupName , + - . +

+

ProcessCount . + 2 36 . ProcessCount + ; + . +

+

ProcessCount 1, + CreateTask ( + ProcessCount 1, , «» +). +

+

ProcessCount 36, + . +

+

ProcessCount + , «» , + CreateTask ProcessCount (. ). +

+ + + + + + + + + + + + + + + + + + + + + + + + + + +
«» + ProcessCount + ProcessCount +
-, + ( ) + 0 +
( 0) + + ; +
+ + 0 +
, + + ; +
+ +
+
procedure SetProcess(ProcessRank: integer);
+
+

+ ProcessRank. + +. + 0. + (, + , +— ). +

+

ProcessRank 0 + N – 1, N — , + ProcessCount CreateTask. + +« SetProcess +0..N–1, N — +». +

+ + + + + diff --git a/PABCNetHelp/ForEducation/MakeModules/tmaker_samples.html b/PABCNetHelp/ForEducation/MakeModules/tmaker_samples.html new file mode 100644 index 000000000..ede0c58da --- /dev/null +++ b/PABCNetHelp/ForEducation/MakeModules/tmaker_samples.html @@ -0,0 +1,807 @@ + + + + + + + + + + + + +

PT4TaskMakerNET:

+
+ +

+

, + , . +

+ +

+ MakerDemo, Begin. +dll- , PT4MakerDemo. +

+ + +

PT4MakerDemo.pas, , : +

+ +
library PT4MakerDemo;
+
+uses PT4TaskMakerNET;
+
+procedure InitTask(num: integer);
+begin
+  case num of
+  1..2: UseTask('Begin', num);
+  end;
+end;
+
+procedure inittaskgroup;
+begin
+  CreateGroup('MakerDemo', '  ',
+    '. . , 2013', 'qwqfsdf13dfttd', 2, InitTask);
+end;
+
+procedure activate(S: string);
+begin
+  ActivateNET(S);
+end;
+
+begin
+end.
+
+ +

PT4TaskMakerNET, +InitTask, . + , + UseTask, . + 1 2 Begin. +

+

. inittaskgroup +( , . . ). + CreateGroup, : + ('MakerDemo'), (' '), , + , (2) (InitTask). +

+

inittaskgroup activate +( ), + ActivateNET, PT4TaskMakerNET. +

+ + +

+ +

, + PT4TaskMakerNET. PascalABC.NET + LIB PascalABC.NET, + . + , + (dll-) ( + « ». +

+

+ , . + PT4MakerDemo.dll, + - PT4Load. + ( [Shift]+[Ctrl]+[L]) + , , , + MakerDemo. + MakerDemo , , + PT4MakerDemo.dll. ( , + PT4) inittaskgroup activate, + . +

+

, «» «MakerDemo1» + [Enter] ( «»); MakerDemo1.pas, + PascalABC.NET. : +

+
+uses PT4;
+
+begin
+  Task('MakerDemo1');
+
+end.
+
+

-, + + «?»: +

+
  Task('MakerDemo1?');
+
+

+ : +

+

+

+

, + 4.11 , . + , + ( , ), + . +[F4]. : +

+

+

+ +

+( [Enter] [Backspace], + (. . «») . + , PascalABC.NET. +, +, . +

+

+

+

. , + , + . Task, + , «?» : +Task('MakerDemo?'). + + . +

+ +

+ +

, MakerDemo1 (. ), + , Begin + « , ». + MakerDemo () , +. , + . inittaskgroup + ( CreateGroup): +

+ +
CommentText('    ');
+CommentText('\I  \i \MPT4TaskMaker\m.');
+
+Subgroup('   ,  ');
+CommentText('    , ');
+CommentText('  Begin.\P   ');
+CommentText('    .\P');
+UseComment('Begin');
+
+

CommentText + MakerDemo. + : \I + \i , + \M \m , . + Subgroup . + , , , CommentText, + \P, . +

+

, (UseComment) +Begin « , ». +UseComment, ; : + , . , + ( , ). Begin , + . +

+

, html- MakerDemo. + , , + «?» Task «#»: Task('MakerDemo?'). + html- : + + +

+

+

(« + »), Begin. +

+ + +

. Task «#», + (, Task('MakerDemo2#')), html- + . , + . html- ( ) + Task , «#». +

+ + + +

+

. Begin3, + . + , MakerDemo3 +( , , ): +

+
procedure MakerDemo3;
+var
+  a, b: real;
+begin
+  CreateTask('   ,  ');
+  TaskText('  ~{a} ~{b}.', 0, 2);
+  TaskText('   {S}~=~{a}\*{b}   {P}~=~2\*({a}\;+\;{b}).',
+    0, 4);
+  a := RandomN(1, 99) / 10;
+  b := RandomN(1, 99) / 10;
+  DataR('a = ', a, xLeft, 3, 4);
+  DataR('b = ', b, xRight, 3, 4);
+  ResultR('S = ', a * b, 0, 2, 4);
+  ResultR('P = ', 2 * (a + b), 0, 4, 4);
+  SetTestCount(3);
+end;
+
+

MakerDemo3 ( , ) + InitTask. +

+

MakerDemo3 , : +

+ +

MakerDemo, 3: +

+
procedure InitTask(num: integer);
+begin
+  case num of
+  1..2: UseTask('Begin', num);
+  3: MakerDemo3;
+  end;
+end;
+
+

, CreateGroup, 3. +

+

, html- MakerDemo , + «#» «?» ( + Task Task('MakerDemo?')) + , + MakerDemo3. , + ; , + . +

+ + + +

+

MakerDemo : Matrix7 +( « (): »), + String, +: « : ». + MakerDemo4 MakerDemo5: +

+
procedure MakerDemo4;
+var
+  m, n, i, j, k: integer;
+  a: array [1..5, 1..8] of real;
+begin
+  CreateTask('  ():  ');
+  TaskText('  ~{M}\;\x\;{N}   ~{K} (1~\l~{K}~\l~{M}).',
+    0, 2);
+  TaskText('  {K}-   .', 0, 4);
+  m := RandomN(2, 5);
+  n := RandomN(4, 8);
+  k := 1;
+  if m = 5 then k := 0;
+  DataN('M = ', m, 3, 1, 1);
+  DataN('N = ', n, 10, 1, 1);
+  for i := 1 to m do
+    for j := 1 to n do
+    begin
+      a[i, j] := RandomR(-9.99, 9.99);
+      DataR(a[i,j], Center(j, n, 5, 1), i + k, 5);
+    end;
+  k := RandomN(1, m);
+  DataN('K = ', k, 68, 5, 1);
+  for j := 1 to n do
+    ResultR(a[k, j], Center(j, n, 5, 1), 3, 5);
+  SetTestCount(5);
+end;
+
+procedure MakerDemo5;
+var
+  s: string;
+begin
+  CreateTask('  :  ');
+  TaskText('  ~{S}.', 0, 2);
+  TaskText('     .', 0, 4);
+  s := WordSample(RandomN(0, WordCount-1));
+  if CurrentTest = 3 then
+    while s[1] = s[Length(s)] do
+      s := WordSample(RandomN(0, WordCount-1));
+  DataS('S = ', s, 0, 3);
+  ResultC(' : ', s[1], xLeft, 3);
+  ResultC(' : ', s[Length(s)], xRight, 3);
+  SetTestCount(4);
+end;
+
+

Center + + : 5 , + . MakerDemo4 SetTestCount; + , , 5. +

+

+ , DataR ResultR, + ( Data Result 4.11 ). +

+

MakerDemo5 + WordCount WordSample. + . , PT4TaskMaker +EnWordCount EnWordSample, . +

+

MakerDemo5 , 4.11 : + CurrentTest, + . + - , , + . + S -, + , . + , + , . +, , + while. CurrentTest + : , , + 3, . + CurrentTest. +

+

CreateGroup 5 + InitTask: +

+
procedure InitTask(num: integer);
+begin
+  case num of
+  1..2: UseTask('Begin', num);
+  3: MakerDemo3;
+  4: MakerDemo4;
+  5: MakerDemo5;
+  end;
+end;
+
+ +

: +

+

+

+

+

+ + + +

+

MakerDemo : File63 +( « »), +— Text16 ( « : »). + MakerDemo6 MakerDemo7: +

+ +
function FileName(Len: integer): string;
+const
+  c = '0123456789abcdefghijklmnopqrstuvwxyz';
+var
+  i: integer;
+begin
+  result := '';
+  for i := 1 to Len do
+    result := result + c[RandomN(1, Length(c))];
+end;
+
+procedure MakerDemo6;
+var
+  k, i, j, jmax: integer;
+  s1, s2, s3: string;
+  fs1: file of ShortString;
+  fs2: file of ShortString;
+  fc3: file of char;
+  s: ShortString;
+  c: char;
+begin
+  CreateTask('   ');
+  TaskText(
+  '  ~{K} (>\,0)   .'#13 +
+  '   : ,   {K}~'#13 +
+  '   ,  ,  {K}- '#13 +
+  '  (   ~{K},    '#13 +
+  '  ,      ).'
+  );
+  s1 := '1' + FileName(5) + '.tst';
+  s2 := '2' + FileName(5) + '.tst';
+  s3 := '3' + FileName(5) + '.tst';
+  Assign(fs1, s1);
+  Rewrite(fs1);
+  Assign(fs2, s2);
+  Rewrite(fs2);
+  Assign(fc3, s3);
+  Rewrite(fc3);
+  k := RandomN(2, 11);
+  jmax := 0;
+  for i := 1 to RandomN(10, 20) do
+  begin
+    j := RandomN(2, 16);
+    if jmax < j then
+      jmax := j;
+    s := FileName(j);
+    write(fs1, s);
+    if j >= k then
+      c := s[k]
+    else
+      c := ' ';
+    write(fc3, c);
+    s := copy(s, 1, k);
+    write(fs2,s);
+  end;
+  Close(fs1);
+  Close(fs2);
+  Close(fc3);
+  DataN('K = ', k, 0, 1, 1);
+  DataS('  : ', s1, 3, 2);
+  DataS('   :  ', s2, 3, 4);
+  DataS('   : ', s3, 3, 5);
+  DataComment('  :', xRight, 2);
+  DataFileS(s1, 3, jmax + 3);
+  ResultComment('   :',
+    0, 2);
+  ResultComment('   :',
+    0, 4);
+  ResultFileS(s2, 3, k + 3);
+  ResultFileC(s3, 5, 4);
+end;
+
+procedure MakerDemo7;
+var
+  p: integer;
+  s, s1, s2, s0: string;
+  t1, t2: text;
+begin
+  CreateTask(' :  ');
+  TaskText('  .', 0, 2);
+  TaskText('     .', 0, 4);
+  s1 := FileName(6) + '.tst';
+  s2 := '#' + FileName(6) + '.tst';
+  s := TextSample(RandomN(0, TextCount-1));
+  Assign(t2, s2);
+  Rewrite(t2);
+  Assign(t1, s1);
+  Rewrite(t1);
+  writeln(t2, s);
+  Close(t2);
+  s0 := #13#10#13#10;
+  p := Pos(s0, s);
+  while p <> 0 do
+  begin
+    Delete(s, p, 2);
+    p := Pos(s0, s);
+  end;
+  writeln(t1, s);
+  Close(t1);
+  ResultFileT(s1, 1, 5);
+  Rename(t2, s1);
+  DataFileT(s1, 2, 5);
+  DataS(' : ', s1, 0, 1);
+  SetTestCount(3);
+end;
+
+

FileName(Len), + Len ( ). + () . +

+

, FileName, .tst (, + File, Text Param ). +

+

FileName MakerDemo6. +

+

, MakerDemo6 + : 1 , 2 , 3 . + MakerDemo7 + #, . +

+

MakerDemo6 TaskText, + 4.11 . + TaskText , + , , , + #13, #10 #13#10 ( ). + TaskText + . +

+

+ TextCount TextSample. , TextSample, + , — #13#10. + ( ). + +writeln, , , . +

+

CreateGroup 7 + InitTask: +

+
procedure InitTask(num: integer);
+begin
+  case num of
+  1..2: UseTask('Begin', num);
+  3: MakerDemo3;
+  4: MakerDemo4;
+  5: MakerDemo5;
+  6: MakerDemo6;
+  7: MakerDemo7;
+  end;
+end;
+
+ +

: +

+

+

+

+

+ +

+ +

, , + , +: , TNode + PNode, «», .NET- +(C#, Visual Basic .NET, PascalABC.NET), Python Java. + , , + TNode PNode . + , + Node ( ). +

+

, , Dynamic30, + ( « : »). + MakerDemo8 MakerDemo8Obj: +

+ +
var WrongNode: TNode;
+
+procedure MakerDemo8Data;
+var
+  i, n: integer;
+  p, p1, p2: PNode;
+begin
+  if RandomN(1, 4) = 1 then
+    n := 1
+  else
+    n := RandomN(2, 9);
+  case CurrentTest of
+  2: n := 1;
+  4: n := RandomN(2, 9);
+  end;
+  new(p1);
+  p1^.Data := RandomN(10, 99);
+  p1^.Prev := nil;
+  p2 := p1;
+  for i := 2 to n do
+  begin
+    new(p);
+    p^.Data := RandomN(10, 99);
+    p^.Prev := p2;
+    p2^.Next := p;
+    p2 := p;
+  end;
+  p2^.Next := nil;
+  SetPointer(1, p1);
+  SetPointer(2, p2);
+  ResultP(' : ', 2, 0, 2);
+  ResultList(1, 0, 3);
+  ShowPointer(2);
+  DataP(1, 0, 2);
+  p := p1;
+  for i := 1 to n do
+  begin
+    p^.Prev := @WrongNode;
+    p := p^.Next;
+  end;
+  DataList(1, 0, 3);
+  ShowPointer(1);
+end;
+
+procedure MakerDemo8;
+begin
+  CreateTask('  :  ');
+  TaskText(' ~{P}_1     ' +
+    '-  TNode,', 0, 1);
+  TaskText('      Next.  ' +
+    ' Prev  TNode,', 0, 2);
+  TaskText('  (\I\i)  ' +
+    ' \I\i,   ', 0, 3);
+  TaskText('       ' +
+    '(   Next),', 0, 4);
+  TaskText('    (   Prev).  Prev ' +
+    '  ', 0, 5);
+  TaskText(' \N.      ' +
+    ' .', 0, 0);
+  MakerDemo8Data;
+end;
+
+procedure MakerDemo8Obj;
+begin
+  CreateTask('  :  ');
+  TaskText(
+  ' ~{A}_1     -  Node,'#13 +
+  '       Next.   Prev'#13 +
+  ' ,   (\I\i)   \I\i,'#13 +
+  '          ( '#13 +
+  ' Next),     (   Prev).  Prev'#13 +
+  '    \O.  ~{A}_2  '#13 +
+  '  .'
+  );
+  SetObjectStyle;
+  MakerDemo8Data;
+end;
+
+ +

, , . + + , MakerDemo8Data. + + (. , ). + , . +

+

+ PascalABC.NET , + : ( Delphi Free Pascal Lazarus) + ( C#, Visual Basic .NET, Python Java). + PascalABC.NET +, , ( , + ), +SetObjectStyle. . +

+

5 . , + , TaskText, + 0 (. MakerDemo8). + «» + TaskText , (. MakerDemo9). + ( ) + , ; + , , . +

+

( ) , + \N ( ) \O ( ). + PascalABC.NET nil. +

+

, , + ( ) , , . + . + , + , . + , CurrentTest, + 4.11 , + 2, — 4. , , + 5 «», + «» . +

+

Prev + «» ( — WrongNode), + . , , , Prev + nil, + : Prev nil, +«» ( ) nil<. +

+

: + ( ), + , , , + , . +

+ +

, , + . : +

+
  • , + (, Visual Basic 1C); +
  • .NET, Python Java, «» +, Pascal C++. +
+

, PascalABC.NET, + , . , , +PascalABC.NET . +

+

, + , , + . +

+

InitTask : +

+ + +
procedure InitTask(num: integer);
+begin
+  case num of
+  1..2: UseTask('Begin', num);
+  3: MakerDemo3;
+  4: MakerDemo4;
+  5: MakerDemo5;
+  6: MakerDemo6;
+  7: MakerDemo7;
+  8: if CurrentLanguage and lgWithPointers <> 0 then
+       MakerDemo8
+     else
+       MakerDemo8Obj;
+  9: MakerDemo8Obj;
+  end;
+end;
+
+ +

CurrentLanguage, + , + . , + ( PascalABC.NET), + 8 MakerDemo8, . + , . + PascalABC.NET 9; + 9 «» 8. +

+ +

CurrentLanguage inittaskgroup , + . + , CreateGroup begin +( , + CreateGroup n): +

+
var
+  n: integer;
+begin
+  n := 7;
+  if CurrentLanguage = lgPascalABCNET then
+    n := 9
+  else
+  if CurrentLanguage and (lgWithPointers or lgWithObjects) <> 0 then
+    n := 8;
+  CreateGroup('MakerDemo', '  ',
+    '. . , 2013', 'qwqfsdf13dfttd', n, InitTask);
+
+

, + , , . , + ( lgPascalABCNET), + lgWithPointers lgWithObjects. , + , , + — , + . +

+ +

PascalABC.NET . + ( + , , — , ). + + , . +

+

+

+

+

+

PT4MakerDemo, ( + inittaskgroup): +

+ +
  Subgroup('  ():  ');
+  CommentText('    Matrix7.');
+
+  Subgroup('   ');
+  CommentText('    File63.');
+  CommentText('  ,   ');
+  CommentText('\I\i .');
+
+  Subgroup(' :  ');
+  CommentText('    Text16.');
+
+  Subgroup('  :  ');
+  CommentText('    Dynamic30.');
+  CommentText('\P    :    ');
+  CommentText('(  Pascal  C++)      (   .NET,');
+  CommentText('  Python  Java).   Visual Basic   .');
+  CommentText('  PascalABC.NET    .');
+
+ +

html- : +

+ +

+

+ + + + + + + diff --git a/PABCNetHelp/ForEducation/PT4/About.html b/PABCNetHelp/ForEducation/PT4/About.html new file mode 100644 index 000000000..62fc4ead4 --- /dev/null +++ b/PABCNetHelp/ForEducation/PT4/About.html @@ -0,0 +1,179 @@ + + + + + + + + + + + + + +

Programming Taskbook

+
+

+ +

Programming Taskbook + Pascal, Visual Basic, C++, C#, Visual Basic .NET, Python Java. + 1300 , + : + . 4.10, + , . +

+ +

Programming Taskbook + , + +(mabr@math.sfedu.ru).

+ + +

4.11 Programming Taskbook : +

+
  • Borland Delphi 7.0 2006, , Turbo Delphi 2006 for Windows, +
  • Free Pascal Lazarus 1.0, +
  • Microsoft Visual Basic 5.0 6.0, +
  • Microsoft Visual C++ 6.0, +
  • Microsoft Visual Studio .NET 2003, 2005, 2008, 2010 2012 ( Visual C++, Visual Basic .NET Visual C# .NET), +
  • Python 2.5, 2.6, 2.7, 3.2, +
  • NetBeans IDE 6.x 7.x ( Java). +
+

+ Pascal ABC (http://sunschool.mmcs.sfedu.ru, + . . . ), «Pascal ABC & +Programming Taskbook». + + PascalABC.NET + - ProgrammingABC.NET WDE (http://www.pascalabc.net/WDE). +

+ +

4.9, + Programming Taskbook for MPI + + MPI. +

+ +

4.10, + +Programming Taskbook for Bioinformatics — + . +

+ +

4.11 Python Java + ( , + ). +

+ +

Programming Taskbook +: +

    +
  • ; +
  • ; +
  • ; +
  • -, ; +
  • , ; +
  • + ; +
  • + . +
+

+ +

+ , + -, , , + . +, + , + . +

+

« Programming Taskbook 4» + 28  2007 . ( + 2007611815). +

+

, , , + , +ptaskbook.com. +

+ + + +

+

+

: +

  • PT4Demo +, ; +
  • PT4Load - + ; +
  • PT4Results — , + , + . +
+

+

PascalABC.NET + PascalABC.NET + «», :

+
    +
  • Shift+Ctrl+D PT4Demo, +
  • Shift+Ctrl+L PT4Load, +
  • Shift+Ctrl+R PT4Results. +
+

4.11, PT4Results + , F2. +

+ + + + +

+- +

+ +

 - , + PT4Setup). +, -, «°». + - 310 ,   Begin, Integer, +Boolean,   200   . + ,  - :

+ +

+Begin1–Begin40, Integer1–Integer30, Boolean1–Boolean40, If4, If6, If8, If12, If22, If26, +Case2, Case4, Case9–Case10, Case18, For5, For12–For13, For15–For16, For19–For20, For33, For36, +While1–While2, While4, While7, While11–While12, While22–While23, Series1, Series15–Series17, +Series19, Series21, Series30, Proc4, Proc8, Proc10, Proc20–Proc21, Proc25, Proc40, Minmax1, +Minmax6, Minmax12, Minmax19, Minmax22, Array4, Array7, Array16, Array32, Array47, Array54, +Array63, Array71, Array79, Array89, Array92, Array108, Array112, Array116, Array134, Matrix7, +Matrix24, Matrix36, Matrix53, Matrix74, Matrix82, Matrix88, Matrix100, String9–String10, String19, +String29, String41, String44, String63, String70, File2, File10, File25, File27, File41, File43, +File48, File50, File58, File61, File63, File67, File74, Text1, Text4, Text16, Text21, Text24, +Text34, Text38, Text42, Text44, Text57, Param1, Param17, Param30, Param40, Param49, Param53, +Param59–Param61, Recur1, Recur4–Recur5, Recur10, Recur14–Recur18, Recur21, Recur25, Recur27, +Dynamic2–Dynamic3, Dynamic5, Dynamic8–Dynamic12, Dynamic25, Dynamic30, Dynamic49, Dynamic55, +Dynamic59, Dynamic63, Dynamic70, Dynamic74, Dynamic78, +Tree2, Tree6, Tree9, Tree12–Tree13, Tree32, Tree34, Tree40, Tree47, Tree49, Tree53, +Tree59, Tree65, Tree70, Tree74–Tree76, Tree79, Tree86, Tree92, +ExamBegin2, ExamBegin5, ExamBegin7, ExamBegin12, ExamBegin21, ExamBegin28, ExamBegin33, ExamBegin38, ExamBegin42, +ExamBegin45, ExamBegin49, ExamBegin51, ExamBegin53, ExamBegin61, ExamBegin65, ExamBegin71, +ExamBegin83–ExamBegin84, ExamBegin87, ExamBegin95, +ExamTaskC1, ExamTaskC4, ExamTaskC13, ExamTaskC19, ExamTaskC25, ExamTaskC34, ExamTaskC37, ExamTaskC44, ExamTaskC49, +ExamTaskC53, ExamTaskC62, ExamTaskC68, ExamTaskC73, ExamTaskC81, ExamTaskC83, ExamTaskC86, ExamTaskC88, +ExamTaskC92, ExamTaskC97, ExamTaskC100. +

+ +

- +, . + , , , + + . +

+ + + + + + + + + + diff --git a/PABCNetHelp/ForEducation/PT4/Demo.html b/PABCNetHelp/ForEducation/PT4/Demo.html new file mode 100644 index 000000000..95869cb7a --- /dev/null +++ b/PABCNetHelp/ForEducation/PT4/Demo.html @@ -0,0 +1,123 @@ + + + + + + + + + + + + +

+
+

+ + Task + ?, :

+ +
+Task('Begin12?'); +
+ +

? , , 'Begin?'. + . +

+ + +

: +

+ +
    +
  • , + +; +
  • + « +»; +
  • + ; + « » +; +
  • + ; + o +« » Enter, + +« » Backspace. + . +
+ + + + +

. +

+
+ +
+

, 4.11, + : +

+
+ +
+ + + +

+ , + .

+

- , , +PT4Demo, PascalABC.NET + « | » ( + + Shift+Ctrl+D). +

+

PT4Demo. + ( +Ctrl+[<] Ctrl+[>]) ( + Ctrl+Shift+[<] Ctrl+Shift+[>]). +

+
+ +
+ +

, +( , -). + , + results.abc.

+ + +

4.8 html-. + ( html-, ) + Task, , + «#», , Begin# Begin3#. + , . + Task , #, + , ; html- + , Task ( ). +

+ +

- , , + html- . +

+ +

html- , PT4Tasks.css, + , — PT4 + PascalABC.NET. , html- . +

+ +

html- PT4Tasks.html . + , . +

+ + +

html- PT4Demo. + (. ) F2. +

+ + + + diff --git a/PABCNetHelp/ForEducation/PT4/Groups.html b/PABCNetHelp/ForEducation/PT4/Groups.html new file mode 100644 index 000000000..2eb7ebfed --- /dev/null +++ b/PABCNetHelp/ForEducation/PT4/Groups.html @@ -0,0 +1,132 @@ + + + + + + + + + + + +

+
+

, Programming Taskbook + 4.11 (  ). + +

    +
  • Begin — , (40), +
  • Integer — (30), +
  • For — (40), +
  • Boolean — (40), +
  • If — (30), +
  • Case — (20), +
  • While — (30), +
  • Series — (40), +
  • Proc — (60), +
  • Minmax — (30), +
  • Array — (140), +
  • Matrix — () (100), +
  • String — (70), +
  • File — () (90), +
  • Text — (60), +
  • Param — (70), +
  • Recur — (30), +
  • Dynamic — (80), +
  • Tree — (100), +
  • ExamBegin — : (100), +
  • ExamTaskC — : (100). +
+ +

PascalABC.NET ObjDyn ObjTree, + Dynamic Tree, + ( Dynamic Tree ). +

+

Programming Taskbook + PT4. +

PT4TaskMaker, , + . +

+ + +

+

, + . +Dynamic Tree ( ObjDyn ObjTree), + , .

+

, + ( , + ). + ; , + . , + , .

+

( , ) +  1. , +  10  10 ´ 10 .

+

+ , A N + 1 A1, +  N AN. , + B B1,1. , + (): + M × N  1, + —  M, —  N. + + .

+

, + , , + . , + , + .

+

+ ( , + ). , , + ,  1.

+

+ + +

, +

+

4.10, Programming Taskbook , + . Exam; +Pascal ( PascalABC.NET) C++. +

+

Exam: ExamBegin, + , , + ExamTaskC, +, . 100 ; +20 - . +

+

Exam , + -, . , + , , , , + - +: Read/Readln-Write/Writeln Pascal +- cin-cout C++. +

+

Exam : + . + , + ( ExamTaskC), , , + . +

+

Exam +( , + ). +

+

- , - + . + , + , «» +. +

+ + + + + + + + + + diff --git a/PABCNetHelp/ForEducation/PT4/IO.html b/PABCNetHelp/ForEducation/PT4/IO.html new file mode 100644 index 000000000..eae078fea --- /dev/null +++ b/PABCNetHelp/ForEducation/PT4/IO.html @@ -0,0 +1,471 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

PT4

+
+

+ , uses + PT4 (. , +Programming Taskbook). + +

PNode TNode

+
+
+type
+  PNode = ^TNode;
+  TNode = record
+   Data: integer;
+   Next: PNode;
+   Prev: PNode;
+   Left: PNode;
+   Right: PNode;
+   Parent: PNode;
end; +
+ +

PNode TNode Dynamic Tree. +(Dynamic1–Dynamic28) TNode Data Next; + (Dynamic29–Dynamic80) Data, Next Prev. + ( Tree) Data, Left Right; + (Tree48–Tree56 Tree70–Tree71) + Parent. +

+

- PNode; + GetP PutP ( PascalABC.NET +, , + - read + write). +

+

PNode TNode. +

+ + +

, –

+
+
+procedure Task(Name: string); +
+

Name. + , ( + -). , + PT4, Task, + « Task + ».

+

+ Name + (, 'Begin3'). + . , + , + . + , , + . + Name ? +(, 'Begin1?'), + . +

+

4.8, Task + html- . + Name + #, , 'Begin3#' +'Begin#'. html- + , . +

+ + +

Task #, + Task . +Task #, + Task, . + Task, #, + html- , + . +

+ +
+
+ +procedure GetB(var X: boolean);
+procedure GetC(var X: char);
+procedure GetN(var X: integer);
+procedure GetR(var X: real);
+procedure GetS(var X: string);
+procedure GetP(var X: PNode);
+
+

+ , + . + Task; + Task + « + Task ».

+ +

+ ; + « +» ( , , + , + GetN).

+

, + , « + ». , + , , + « ».

+

PascalABC.NET Get + read. + +


+
+ +procedure PutB(X: boolean);
+procedure PutC(X: char);
+procedure PutN(X: integer);
+procedure PutR(X: real);
+procedure PutS(X: string);
+procedure PutP(X: PNode);
+
+

+ +, , + ( ). +Get, Task; + + Task + .

+

Get, + Put , ( +, ). + + , + .

+

Get, + Put + . + + , + , +, . +

PascalABC.NET Put + write. +


+
+ +procedure Dispose(var P: PNode); +
+

+ Dispose , + Dynamic Tree.

+ + +

Node – .NET

+ +

Programming Taskbook, PascalABC.NET, + -, , + .NET. - , + PascalABC.NET , + , .NET-, +.NET, . +

+

- PascalABC.NET + Node, PNode TNode + « ». , + ObjDyn ObjTree, ( Dynamic Tree) + «» , .NET. +

+ +
+ +
+type
+  Node = class(IDisposable)
+  . . .
+  public
+  // :
+    constructor Create;
+    constructor Create(aData: integer);
+    constructor Create(aData: integer; aNext: Node);
+    constructor Create(aData: integer; aNext, aPrev: Node);
+    constructor Create(aLeft, aRight: Node; aData: integer);
+    constructor Create(aLeft, aRight: Node; aData: integer; aParent: Node);
+  // ( ):
+    property Data: integer;
+    property Next: Node;
+    property Prev: Node;
+    property Left: Node;
+    property Right: Node;
+    property Parent: Node;
+  // , , Node:
+    procedure Dispose;
end; +
+ +

Node ObjDyn ObjTree. + (ObjDyn1–ObjDyn28) Node + Data Next; +(ObjDyn29–ObjDyn80) Data, Next Prev. + ( ObjTree) Data, Left Right; + +(ObjTree48–ObjTree56 ObjTree70–ObjTree71) Parent. +

+

Node +; +( 0 Data, nil ). +

+

, +IDisposable, Node + Dispose, , + ( , + ). + Dispose , , + « Dispose + Node». +

+

- ObjDyn ObjTree + Node; +GetNode Put, . +

+ +
+
+ +function GetBoolean: boolean;
+function GetChar: char;
+function GetInt: integer;
+function GetNode: Node;
+function GetReal: real;
+function GetString: string;
+
+ +

, + , , + .NET ( + .NET ). + Task; + Task + « Task + ». +

+

+ ; +« » ( + , , , + GetInt). +

+

, +, « +». , , + , « +». +

+
+
+ +procedure Put(params A: array of object); +
+

Put , +, ( +). Get, Put + Task; + « Task +». +

+

-, params, + Put . + boolean, integer, real, char, string, Node. + Put + , ( , + , nil. , , Node, + ObjDyn ObjTree. + , + « Put +». +

+

, + ; + « ». +

+

Get, Put + + . + , + « » , +, « ». +

+ +

+

+

4.9 Programming Taskbook. + + ( ).

+ + +
+
+procedure Show(S: string); +
+

S . +

+

, + S , + , + ( 80 ). + S + ; S + , S + , + S, — + , 80. +

+

S + . + 13 (« »), 10 (« +»), + (#13#10). +

+ + +
+
+procedure Show([S: string;] A: integer[; W: integer]);
+procedure Show([S: string;] A: real[; W: integer]); +
+

Show, . + +, , + Pascal, + +. +

+

, + . +

+

S , + ; S +, . +

+

A . +

+

W + (. . +, ). W , + W ; ( , W ) + , + . , + (. . + ). + . +

+

+ . + + SetPrecision, . +

+ + +
+
+procedure ShowLine([S: string]);
+procedure ShowLine([S: string;] A: integer[; W: integer]);
+procedure ShowLine([S: string;] A: real[; W: integer]);
+
+

Show; + . + — , Show. +, , . + ShowLine , + . +

+ + +
+
+procedure HideTask; +
+

+, . + ( , + ), HideTask . + . +

+

/ + + +. +

+ + + + +
+
+procedure SetPrecision(N: integer); +
+ +

+ . N , + ; + . N +, + ( ); + + (. . W +Show ShowLine). N +, N = 0. +

+

, + SetPrecision, +. SetPrecision + +. +

+ +

PT4Exam

+

ExamBegin ExamTaskC, , + PT4 PT4Exam. + Task, +. - + Pascal. PT4 PT4Exam , + +( ). +

+

PT4Exam + , ( : + PT4Exam Task, ). +

+ + + diff --git a/PABCNetHelp/ForEducation/PT4/Load.html b/PABCNetHelp/ForEducation/PT4/Load.html new file mode 100644 index 000000000..59ea99d5d --- /dev/null +++ b/PABCNetHelp/ForEducation/PT4/Load.html @@ -0,0 +1,94 @@ + + + + + + + + + + + + +

+
+

+ Programming Taskbook PT4Load + - . + PascalABC.NET + « | » ( + + Shift+Ctrl+L).

+ +

, +( ).

+
+ +
+

+ + ( , , Begin1) + «» , ( Enter) + +, ( ). + - PascalABC.NET; , + .

+

, Begin3 ( Begin3.pas):

+ +
+ +uses PT4;
+
+begin
+   Task('Begin3');
+
+end.
+
+ +

: + (RB DM ), + + (, RBa1).

+ +

, , + .

+ +

PAS ( ) + .pas . + «» + pas-; . + , PAS « | ». + + +

4.11 . + . , «m» + , ; + «()»: +

+
+ +
+ + +

, , + : +

+ +
+ +
+ + + : + +
+ +
+ + + + + + + + diff --git a/PABCNetHelp/ForEducation/PT4/Results.html b/PABCNetHelp/ForEducation/PT4/Results.html new file mode 100644 index 000000000..5264c43dd --- /dev/null +++ b/PABCNetHelp/ForEducation/PT4/Results.html @@ -0,0 +1,84 @@ + + + + + + + + + + + + +

+
+

+ Programming Taskbook + results.abc, , + .

+ +

PascalABC.NET +( PABCWork.NET, C). +( +PT4Setup) + . +

+

+ , +. PT4Results, + PascalABC.NET + « | » ( + + Shift+Ctrl+R).

+ +

PT4Results +.

+

; + + , , . : + +

+ +=      (C:\PABCWork)
+Begin1 A27/09 19:07 .
+Begin1 A27/09 19:07 .--2
+Begin1 A27/09 19:07 !
+For1   A27/09 19:07 .
+For1   A27/09 19:08 .
+For1   A27/09 19:10 .--3
+For1   A27/09 19:13 !
+For5   A27/09 19:15 .--2
+For5   A27/09 19:16 .
+For5   A27/09 19:19 !
+For10  A27/09 19:21 .
+For10  A27/09 19:22 .
+ +
+

A , PascalABC.NET, + , .

+

, + , . :

+ +
+ +=       (C:\PABCWork.NET)
+-1- :
+27/09(19:07-19:22)[3/16]   : 0:16 [3/16]
+-2- :
+Begin1 A27/09 [4]      For1 A27/09 [6]     For5 A27/09 [4]
+-3- :
+For10 27/09 [2]
+-5- :
+Begin 1      For 2      : 3
+
+ +

PascalABC.NET + .

+

+ +

4.11, PT4Results , + F2. +

+ + + diff --git a/PABCNetHelp/ForEducation/PT4/debug.html b/PABCNetHelp/ForEducation/PT4/debug.html new file mode 100644 index 000000000..3d221d66f --- /dev/null +++ b/PABCNetHelp/ForEducation/PT4/debug.html @@ -0,0 +1,207 @@ + + + + + + + + + + +

+
+ +

4.9 Programming Taskbook , + + ( ). + , , + Programming Taskbook for MPI + + , + , , + . +, + +, . +

+

+, . + . +

+ +

+ . + , + - : +

+ +
+ +
+ +

, + , , +. +

+ +

, + ; . + + . / + + , . + , , +, HideTask. +

+

+ , +. + Alt+Up, Alt+Down ( ), +Alt+PgUp, Alt+PgDn ( 10 ), +Alt+Home, Alt+End ( + ). +

+

, + . 7 14 + 1. + Alt+[+], — Alt+[–]. + +. + . +

+

«» + . + + 1; + . , + , + : +

+ +
+ +
+ +

( 0 N–1, N — +) , + ; +«*» , + : +

+ +
+ +
+ +

+ . , + + Alt+Right Alt+Left ( + ). + , : +«*» — [*], +«0»–«9» — +09, «10»–«35» +— A Z ( + + 36). +

+ +

+ , + Alt +Alt- . +

+ +

, + , + + , +, - + . + , , + . +

+ +

+ 999; + , 999, + , + . + , , , +«» - + . +

+ +

, , + . 6  + «» 9  . + 80 . +

+

(. , + ): +

+
  • ( + ): 2 , + , «|»; +
  • : 3 , + , +«>» ; +
  • : +, ( + ), «!» +( ). +
+

, + ( +«*»), +. +

+

, + , + ( , + ; + , ). + ( ) + . +

+ +

, , + Windows; + Ctrl+C + . +

+ +

Show ShowLine. + + , PT4. +

+ +

4.11 + . , + , + . + , + , , + Windows, . +

+ +
+ +
+ + +

+ , : + , + . + , + F4. +

+ + + + + + + diff --git a/PABCNetHelp/ForEducation/PT4/gif/Color1.png b/PABCNetHelp/ForEducation/PT4/gif/Color1.png new file mode 100644 index 000000000..4974fa503 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/Color1.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/Color2.png b/PABCNetHelp/ForEducation/PT4/gif/Color2.png new file mode 100644 index 000000000..00e4d83b2 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/Color2.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/Color3.png b/PABCNetHelp/ForEducation/PT4/gif/Color3.png new file mode 100644 index 000000000..3eceefd45 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/Color3.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/Color4.png b/PABCNetHelp/ForEducation/PT4/gif/Color4.png new file mode 100644 index 000000000..a8616225b Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/Color4.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/PT4Load.gif b/PABCNetHelp/ForEducation/PT4/gif/PT4Load.gif new file mode 100644 index 000000000..047076f19 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/PT4Load.gif differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/PT4Win.gif b/PABCNetHelp/ForEducation/PT4/gif/PT4Win.gif new file mode 100644 index 000000000..771d1cdda Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/PT4Win.gif differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/debug_1.png b/PABCNetHelp/ForEducation/PT4/gif/debug_1.png new file mode 100644 index 000000000..be8737a42 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/debug_1.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/debug_2.png b/PABCNetHelp/ForEducation/PT4/gif/debug_2.png new file mode 100644 index 000000000..ecee4449c Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/debug_2.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/debug_3.png b/PABCNetHelp/ForEducation/PT4/gif/debug_3.png new file mode 100644 index 000000000..13b4a9724 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/debug_3.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/debug_4.png b/PABCNetHelp/ForEducation/PT4/gif/debug_4.png new file mode 100644 index 000000000..209a81f80 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/debug_4.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/demo.gif b/PABCNetHelp/ForEducation/PT4/gif/demo.gif new file mode 100644 index 000000000..ef41f3b44 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/demo.gif differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/demo_1.png b/PABCNetHelp/ForEducation/PT4/gif/demo_1.png new file mode 100644 index 000000000..0cfc9e10e Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/demo_1.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/demo_1b.png b/PABCNetHelp/ForEducation/PT4/gif/demo_1b.png new file mode 100644 index 000000000..5ecfe500e Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/demo_1b.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/demo_2.png b/PABCNetHelp/ForEducation/PT4/gif/demo_2.png new file mode 100644 index 000000000..6eaf126d5 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/demo_2.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/demo_3.png b/PABCNetHelp/ForEducation/PT4/gif/demo_3.png new file mode 100644 index 000000000..c46e75a5e Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/demo_3.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/load.gif b/PABCNetHelp/ForEducation/PT4/gif/load.gif new file mode 100644 index 000000000..3006fc44e Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/load.gif differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/load_3.png b/PABCNetHelp/ForEducation/PT4/gif/load_3.png new file mode 100644 index 000000000..6b201bb06 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/load_3.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/load_5.png b/PABCNetHelp/ForEducation/PT4/gif/load_5.png new file mode 100644 index 000000000..4eee430fb Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/load_5.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/load_6.png b/PABCNetHelp/ForEducation/PT4/gif/load_6.png new file mode 100644 index 000000000..435fd45bb Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/load_6.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/pspbrwse.jbf b/PABCNetHelp/ForEducation/PT4/gif/pspbrwse.jbf new file mode 100644 index 000000000..e40fb1104 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/pspbrwse.jbf differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/pt4demo.png b/PABCNetHelp/ForEducation/PT4/gif/pt4demo.png new file mode 100644 index 000000000..7c315941a Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/pt4demo.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/pt4load.png b/PABCNetHelp/ForEducation/PT4/gif/pt4load.png new file mode 100644 index 000000000..912f16681 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/pt4load.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/pt4win.png b/PABCNetHelp/ForEducation/PT4/gif/pt4win.png new file mode 100644 index 000000000..812636929 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/pt4win.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/results.gif b/PABCNetHelp/ForEducation/PT4/gif/results.gif new file mode 100644 index 000000000..00722507f Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/results.gif differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_1.png b/PABCNetHelp/ForEducation/PT4/gif/window_1.png new file mode 100644 index 000000000..d77c510c2 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_1.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_1b.png b/PABCNetHelp/ForEducation/PT4/gif/window_1b.png new file mode 100644 index 000000000..bacdd7e7a Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_1b.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_2.png b/PABCNetHelp/ForEducation/PT4/gif/window_2.png new file mode 100644 index 000000000..41e7c8547 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_2.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_3.png b/PABCNetHelp/ForEducation/PT4/gif/window_3.png new file mode 100644 index 000000000..ed181c182 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_3.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_4.png b/PABCNetHelp/ForEducation/PT4/gif/window_4.png new file mode 100644 index 000000000..810ec2348 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_4.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_5.png b/PABCNetHelp/ForEducation/PT4/gif/window_5.png new file mode 100644 index 000000000..012bed9ba Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_5.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn1.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn1.png new file mode 100644 index 000000000..52bd7a864 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn1.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn10.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn10.png new file mode 100644 index 000000000..ea3c9939b Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn10.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn2.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn2.png new file mode 100644 index 000000000..648b301a4 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn2.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn3.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn3.png new file mode 100644 index 000000000..467639950 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn3.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn4.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn4.png new file mode 100644 index 000000000..97296e47f Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn4.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn5.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn5.png new file mode 100644 index 000000000..41405bec4 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn5.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn6.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn6.png new file mode 100644 index 000000000..9fb243fcb Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn6.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn6a.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn6a.png new file mode 100644 index 000000000..b12d8e707 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn6a.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn7.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn7.png new file mode 100644 index 000000000..0c4155166 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn7.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn8.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn8.png new file mode 100644 index 000000000..e45b30cd3 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn8.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_dyn9.png b/PABCNetHelp/ForEducation/PT4/gif/window_dyn9.png new file mode 100644 index 000000000..f6f36bb69 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_dyn9.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_new3.png b/PABCNetHelp/ForEducation/PT4/gif/window_new3.png new file mode 100644 index 000000000..e0139721e Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_new3.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_new4.png b/PABCNetHelp/ForEducation/PT4/gif/window_new4.png new file mode 100644 index 000000000..24909c7f2 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_new4.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_new5.png b/PABCNetHelp/ForEducation/PT4/gif/window_new5.png new file mode 100644 index 000000000..0aadd40fb Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_new5.png differ diff --git a/PABCNetHelp/ForEducation/PT4/gif/window_new6.png b/PABCNetHelp/ForEducation/PT4/gif/window_new6.png new file mode 100644 index 000000000..820a7b0e0 Binary files /dev/null and b/PABCNetHelp/ForEducation/PT4/gif/window_new6.png differ diff --git a/PABCNetHelp/ForEducation/PT4/window.html b/PABCNetHelp/ForEducation/PT4/window.html new file mode 100644 index 000000000..61fe7ca35 --- /dev/null +++ b/PABCNetHelp/ForEducation/PT4/window.html @@ -0,0 +1,650 @@ + + + + + + + + + + + + + +

+

+
+ + +

4.11, , + 5 , + , + , «» + . +, , + . + +, , 4.11, + . +

+ + +

+

+

, Programming +Taskbook, . + , +, . + + Begin3 PascalABC.NET ( + ). +

+

: +

+
+ +
+ +

: +

+
+ +
+ +

, F4 + « (F4)», . +

+

, + . , + 4.11, + . +

+

, + (« , +»), , , + , +( ). + «°», , +, - . + . +

+

. Begin3 + a b, . + ; +«a =» «b =», a b. +

+

, + : « » +« ». + - , +« » (. . +«») . + S P, +. + Ctrl+Tab. + + ; , + (, + ). +

+

( , ), + : - , + — . , +. +

+

+«». +«», Esc , + ( PascalABC.NET F9). , + + F9. +

+ + + +

+ 5 , + , , + + , + . , + , +. +

+
+ +
+

+ , +( + ). +

+

, + ( ) (- ). +

+

+ , . + +«» . + Right Down ( ) Left Up +( ); «» , + «» , , + Ctrl+Right PgDn ( ) Ctrl+Left + PgUp ( ). , Home + , End — . +

+

4.11, : +; . +

+

, +(, — . , ), + , + . + [+] [–]: + , , +, — . +

+

, + , , + , . + . + . +

+

, + , ( +) , + ( , , , + ). + ( +, , ); + , + . +, ( +, - , + Up, Down PgUp, PgDn, + , , +Left, Right Ctrl-). + ( , + ). +

+

, + , + . + . , +, . + + , . + , + ( ). + , . +

+

+ : . + Dynamic (« »). , + , + . +

+
+ +
+ +

+ : ; + + Tree. + + , , +. +

+

, + , + + . +, , +« ». +

+

4.9 , + , + . + + , PT4. +

+

, F1 +( «?» ) + . 4.9, : +

+
+ +
+ + + +

, 4.11 +

+ +

4.11 . + , +( , ). +

+ +

+

+

, , + + , -. +

+

1. ( ): +

+
+ +
+ + + +

2. ( ): +

+
+ +
+ + +

3. ( ): +

+
+ +
+ + +

4. ( ): +

+
+ +
+ +

- + +

+

+ + +( + +. ). + + +( ). + + ; / + . + / , +, «: 2 5» «: 4 8». +

+

- . +

+
+ +
+ + +

, + , + - . . + , + , , + . , , , + ( + , ). +

+ +

+ - . , , + , , , — + . ; + ( ). + ( , , + ), , ( + ) . + - , + . +

+ +
+ +
+ + +

+ . . + . + . +, + : ( ) , + , ( ) , + . + «:», + , , + . +

+

( +). +

+
+ +
+ +

- + , . + - , + (, , ) , . +

+

, / +

+

F4 «», +, : . + 4.11, . +

+

F3 «», + , : +( : ) 4.11 ( ). + + , «» , +, «» . «» ( + ) (); . +

+

, + . +

+

«» +«» ; «» + . +

+

, , + / , + Ctrl+D ( ). + , , , , + . / + / + , , +. +

+

/ + . +

+

( , /) + pt4.ini + . +

+
+ +
+ + +

+

+

PT4Results +«» F2. - + ( PT4Demo +, , +- ). PT4Results; + «» . +

+ +

+ +

+

+

, «» + F4 : + , + , (5 ) + , 4.11 +( - +ProgrammingABC.NET WDE), , + , , , +. +

+

, pt4.ini, + . 4.11, + . +

+

+ , ( + ) . +

+

: + ( ), + ( « »), ( +« ») ( + « »). + . + , () — . + , + . , + - . +

+
+ +
+ + +

+(- ) , + . -, + . , + , . + , . + ; + : , , + , , , + . , + . , , + , . + , , + - : +, , . +

+

- , + , . +

+
+ +
+ + +

+. Align31 ( +). +

+
+ +
+ +

+ , . +

+
+ +
+ +

, + , + . + , + ; . + Ctrl+Up Ctrl+Down +. +

+

, + , + , Home, End, PgUp, PgDn, Up Down. +

+

( ) + , + ( , , ). + Ctrl+[+] Ctrl+[–]. + ( 8 ). + ( Alt+[+] Alt+[–]); + . +

+
+ +
+ + +

+ + pt4.ini . + , +. ( + ) + , +. +

+

+

+

, + . + + Del. + , +() , , + ( « + (Del)»): +

+
+ +
+ + +

, , + , : + Del. +

+

, , + , , ( ). + : +, ( ). + «x», +« (Del)»: +

+
+ +
+

( -) , ( + -) . + - ; , + + +( « »). +

+

(, +, , , 5 ) + . + . + , ; + + , 1. , + : +

+
+ +
+ + +

+ , + , . + « (Ins)». + , Ins + , ( ), + ; , + : , , , : +

+
+ +
+ +

+ , + , . +

+ +

( -) +, ( -) +. - + ; , + + +( « »). +

+ +

/ + , . + , + +Ins . + + , , , + . +

+ + +

«» +

+ +

, , +(, ), + + . , + . , + «» . , + ( , , ) + , . , + , + «–», «+» «/»: +

+ +
+ +
+ + +

. + «–» [–] + , + «+» [+] + ; . + , . +

+

«/» [/] + , . + , + . : + , . + +. +

+

[–], [+], [/], «» +( Ins Del, + ), + NumLock; + . +(, ) . + , + : Ctrl+PgDn [+], Ctrl+PgUp [–] + Ctrl+Tab [/]. , Ctrl+Tab + , + . + , + : +

+ +
+ +
+ + + + + + diff --git a/PABCNetHelp/IDE/intellisense.html b/PABCNetHelp/IDE/intellisense.html new file mode 100644 index 000000000..99d39295d --- /dev/null +++ b/PABCNetHelp/IDE/intellisense.html @@ -0,0 +1,51 @@ + + + + + + + + + + +

(Intellisense)

+

1. +Ctrl+ .

+

+ +

+

+2. Shift+ + . /// + (, , +)

+

+

+

3. "". + , .

+

+4. +

+ + +

+

+ +5. +new , + + . , + .

+

+

+

+6. " + ", " + ", " + ".

+

+

+ + + + diff --git a/PABCNetHelp/LangGuide/Classes/abstractmethods.html b/PABCNetHelp/LangGuide/Classes/abstractmethods.html new file mode 100644 index 000000000..abe8c650b --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/abstractmethods.html @@ -0,0 +1,64 @@ + + + + + + + + + + + + + +

+

, , + abstract + . +, + virtual + . :

+
+

type
+  Shape = class
private
+    x,y: integer;
public
+    constructor Create(xx,yy: integer);
+    begin
+      x := xx;
+      y := yy;
+    end;
+    procedure Draw; abstract;
end;

+
+

, , +. .

+

+"" . :

+
+

type
+  Point = class(Shape)
public
+    procedure Draw; override;
+    begin
+      PitPixel(x,y,Color.Black);
+    end;
end;

+
+

override + , + .

+

, +abstract. +, :

+
+

type
+  A = abstract class(Shape)
end;

+
+

 

+

 

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/anontypes.html b/PABCNetHelp/LangGuide/Classes/anontypes.html new file mode 100644 index 000000000..c307d0b00 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/anontypes.html @@ -0,0 +1,39 @@ + + + + + + + + + + + + +

+

, . + ( ), .

+

:

+
var p := new class(Name := '', + Age := 20);
Println(p.Name,p.Age);
+

p Name Age + .

+

+ , . :

+
var p1 := new class(Name := '', + Age := 21);
p1 := p;
+

, + - + . :

+
var Name := '';
var
Age := 23;
+ var
p := new class(Name, Age);
+ Println(p.Name,p.Age);
+

+, . + . :

+
var d := new DateTime(2015,5,15);
+ var p := new class(d.Day, d.Month, d.Year);
Println(p.Day, + p.Month, p.Year);
Println(p);
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/attributes.html b/PABCNetHelp/LangGuide/Classes/attributes.html new file mode 100644 index 000000000..bfbe29cff --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/attributes.html @@ -0,0 +1,21 @@ + + + + + + + + + + + + +

+

+
+

t

+
+

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/autoclasses.html b/PABCNetHelp/LangGuide/Classes/autoclasses.html new file mode 100644 index 000000000..8c7e9144f --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/autoclasses.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + +

+

class +auto. + . + , , +ToString, . :

+
type Person = auto class
  + name: string;
  age: integer;
end;
+ var p := new Person('',20); // +
writeln(p); // + ToString
+

writeln +, .

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/classcast.html b/PABCNetHelp/LangGuide/Classes/classcast.html new file mode 100644 index 000000000..626d51530 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/classcast.html @@ -0,0 +1,56 @@ + + + + + + + + + +

+

+ . + + .

+

:

+
+

type
+  Person = class
+   ...
+
  end;
+  Student = class(Person)
+     ...
+
    procedure IncCourse;
end;
+ ...
+ var
p: Person;
+  s: Student;
+ begin
+  p := new Student('',20,3,1); // +
+  s := Student(p); // +
+ end.

+
+

+ ( ; +, p + Person). +

+

+ , :

+
+

s.IncCourse;

+
+

:

+
+

Student(p).IncCourse;

+
+

+ +is + as.

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/classconstr.html b/PABCNetHelp/LangGuide/Classes/classconstr.html new file mode 100644 index 000000000..325245847 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/classconstr.html @@ -0,0 +1,92 @@ + + + + + + + + + + + +

, ,

+

() +, . , +. , , + , . + (), +class. read write + .

+

, Person + + . + 1:

+

type
+  Person = class
private
+    name: string;
+    age: integer;
+    class cnt: integer := 0;
  public
    class +property
Coun: integer read cnt;
+    constructor (n: string; a: integer);
+    begin
+
      cnt += 1;
+      name := n;
+      age := a;
+    end;
+    class function Count: integer;
+    begin
+      Result := cnt;
+    end;

end;

+

begin
var p: Person := new Person('
',20);
var p1: Person := new Person('
',18);
+  writeln(Person.Count); //
+Count
+end.

+

, +. +, .

+

() , + . + + class +   .

+

, Person + - Person - + . + RandomPerson, +Person:

+
+

type
+  Person = class
private
+    class arr: array of Person; 
+    name: string;
+    age: integer;
public
+    class constructor;
+    begin
+      SetLength(arr,3);
+      arr[0] := new Person('',20);
+      arr[1] := new Person('',19);
+      arr[2] := new Person('',35);
+    end;
+     //...
+    class function RandomPerson: Person;
+    begin
+      Result := arr[Random(3)];
+    end;
end;
+ const cnt = 10;
+ begin
+
  var a := new Person[cnt];
for var i:=0
to a.Length-1 + do
+    a[i] := Person.RandomPerson;
+
end.

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/classdefbefore.html b/PABCNetHelp/LangGuide/Classes/classdefbefore.html new file mode 100644 index 000000000..80e6d1175 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/classdefbefore.html @@ -0,0 +1,44 @@ + + + + + + + + + +

+

+ , .

+

:

+
+

type
+  AAA = class
+
    b: BBB;
end;
+  BBB = class
+     a: AAA;
end;

+
+

, +BBB b + . +

+
+

= class;

+
+

+ type:

+
+

type
+  BBB = class;
+  AAA = class
+
    b: BBB;
end;
+  BBB = class
+     a: AAA;
end;

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/constrdestr.html b/PABCNetHelp/LangGuide/Classes/constrdestr.html new file mode 100644 index 000000000..e7d1177b7 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/constrdestr.html @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + +

+

+, .

+

, + , + . + . +function +constructor. , + .

+

:

+
+

type
+  Person = class
+  private

+    nm: string;
+    ag: integer;
+   public
+     constructor Create(name: + string; age: integer);
end;
+ ...
+ constructor Person.Create(name: + string; age: integer);
+ begin
+  nm := name;
+   ag := age;
+ end;

+
+

PascalABC.NET + Create. + :

+
+

type
  Person = class
    + constructor (name: string; age: integer);
+     begin
+       nm := name;
+       ag := age;
+     end;
end;

+
+

+.NET PascalABC.NET + ( , +). +( - ,   - False).

+

.

+

1 . Object Pascal.

+

, +-, . :

+
+

var p: Person;
+ p := Person.Create('',20);

+
+

2 . new - + C# ().

+
+

var p: Person;
+ p := new Person('',20);

+
+

Object Pascal - + , + , +. procedure + destructor.

+

:

+
+

destructor Destroy;
begin
  ...
end;

+
+

PascalABC.NET + , PascalABC.NET + +-.

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/constrinheritance.html b/PABCNetHelp/LangGuide/Classes/constrinheritance.html new file mode 100644 index 000000000..631941756 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/constrinheritance.html @@ -0,0 +1,76 @@ + + + + + + + + + + + +

+

- . + . , +Delphi Object Pascal . +.NET, , . + - +. .NET - + , + , .

+

PascalABC.NET . + , + , ( , + ). , + . , , + +protected.

+

, .NET + ; +Object Pascal . +PascalABC.NET , + . + , + (.. ). + ( , +.NET- + - , PascalABC.NET, + ), .

+

:

+

type
+  A = class
+
    i: integer;
+    // + ,
+    constructor Create(i: integer);
+    begin
+
      Self.i := i;
+    end;
end;
+   B = class(A)
+     j: integer;
+    constructor Create;
+    begin
+
      // +
+      // + ,
+      j := 1;
+    end;
+     constructor Create(i,j: integer);
+    begin
+      inherited
Create(i);
+
      Self.j := j;
+    end;
+   end;
+  C = class(B)
+   // ,
+  // +constructor Create(i,j: integer)   
+  // , +
+  end;

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/extensionmethods.html b/PABCNetHelp/LangGuide/Classes/extensionmethods.html new file mode 100644 index 000000000..8454834c2 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/extensionmethods.html @@ -0,0 +1,55 @@ + + + + + + + + + + + + + +

+

, dll, + .NET . + + extensionmethod. + Self . +, :

+
procedure MyPrint(Self: integer);
begin
  writeln(Self)
+ end;
+
procedure
MyPrintEx(Self: integer); + extensionmethod;
begin
  writeln(Self)
+ end;
+
begin
  MyPrint(1);
  1.MyPrintEx;
+ end.
+

MyPrint - integer, MyPrintEx - + integer. MyPrintEx + , MyPrintEx .

+

, , + ( , List<T>, +HashSet<T> SortedSet<T>), + . , PABCSystem + ForEach :

+
procedure &ForEach<T>(Self: sequence + of T; action: T -> ()); extensionmethod;
+ begin
  foreach x: T in + Self do
    action(x);
end;
+

+:

+
function operator+=<T>(a: List<T>; x: T): + List<T>; extensionmethod;
begin
  + a.Add(x);
  Result := a;
end;
+

Self.

+

:

+
    +
  • .
  • +
  • , , + .
  • +
+

 

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/index_classes.html b/PABCNetHelp/LangGuide/Classes/index_classes.html new file mode 100644 index 000000000..14041552e --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/index_classes.html @@ -0,0 +1,154 @@ + + + + + + + +Классы и объекты: обзор + + + + + +

Обзор классов и объектов

+

Описание классов

+

Класс представляет собой составной тип, состоящий из полей +(переменных), методов (процедур и функций) +и свойств. Описание класса имеет вид:

+
+

type
имя класса = class
  секция1 
  +   секция2 
       + ...
end;

+
+

Каждая секция имеет вид:

+
+

модификатор доступа  +
   описания полей
+    + объявления или описания методов и описания свойств

+
+

Модификатор доступа в первой секции может отсутствовать, при этом +подразумевается модификатор internal +(видимость всюду внутри сборки).

+

Методы могут описываться как внутри, так и вне класса. При описании метода +внутри класса его имя предваряется именем класса с последующей точкой. Например:

+
+

type
+   Person = class
+  private

+     fName: string;
+     fAge: integer;
+   public
+    constructor Create(Name: string; Age: integer);
+     begin
+      fName := Name;
+      fAge := Age;
+    end;
    procedure + Print;
    property Name: string read fName;
    + property Age: integer read fAge;
  end
;

+ procedure
Person.Print;
begin
  + writelnFormat('Имя: {0} Возраст: {1}', Name, Age);
end;

+
+

После слова class +в скобках может быть указано имя класса-предка (см. +Наследование), а также через запятую список поддерживаемых +интерфейсов.

+

Перед словом class +может быть указано ключевое слово sealed – в +этом случае от класса запрещено наследовать.

+

Все описания и объявления внутри класса образуют +тело класса. Поля и +методы образуют интерфейс класса. Инициализаторы полей описаны здесь.

+

Классы могут описываться только на глобальном уровне. Локальные определения классов (т.е. определения в +разделе описания подпрограмм) запрещены.

+

Переменные типа класс

+

В языке PascalABC.NET классы являются +ссылочными типами. +Это значит, что переменная типа класс хранит в действительности ссылку на +объект.

+

Переменные типа класс называются объектами +или экземплярами класса. Они +инициализируются вызовом конструктора класса - +специального метода, выделяющего память под объект класса и инициализирующего +его поля:

+
+

var p: Person := new Person('Иванов',20);

+
+

После инициализации через переменную типа класс можно обращаться к публичным +членам класса (полям, методам, свойствам), используя точечную нотацию:

+
+

Print(p.Name,p.Age);
p.Print;

+
+

Вывод переменной типа класс

+

По умолчанию процедура write для переменной типа класс выводит +содержимое её публичных полей и свойств в круглых скобках через запятую:

+
+

write(p); // Иванов 20

+
+

Чтобы изменить это поведение, в классе следует +переопределить виртуальный метод +ToString класса Object - в этом случае именно он будет +вызываться при выводе объекта.

+

Например:

+
+

type
+   Person = class
+  +   ...
+    function
ToString: + string; override;
+     begin
      Result := + + string.Format('Имя: {0}  Возраст: {1}', + Name, Age);
+     end;
+   end;
+   ...
+ var p: Person := new Person('Иванов',20);
+ writeln(p); // Имя: Иванов  Возраст: 20

+
+

Присваивание и передача в качестве параметров подпрограмм

+

Переменная типа класс является ссылкой и хранит ссылку на объект, создаваемый +вызовом конструктора.

+

Как ссылка переменная типа класс может хранить значение +nil:

+
+

p := nil;
+ ...
+ if p = nil then ...

+
+

При присваивании переменных типа класс копируется только ссылка. После +присваивания обе переменные типа класс будут ссылаться на один объект +и совместно модифицировать его:

+
+

var p1,p2: Person;
+ ...
+ p1 := new Person('Петров',20);
+ p2 := p1;
+ p1.IncAge;
+ p2.Print; // Имя: Петров  + Возраст: 21

+
+

Сравнение на равенство

+

При сравнении переменных типа класс на равенство сравниваются ссылки, а не +значения.

+
+

var p1 := new Person('Петров',20);
var p2 := new + Person('Петров',20);
writeln(p1=p2); // False
+ p2 := p1;
+ writeln(p1=p2); // True

+
+

Это поведение можно изменить, перегрузив +операцию = для класса.

+ + diff --git a/PABCNetHelp/LangGuide/Classes/indexedproperties.html b/PABCNetHelp/LangGuide/Classes/indexedproperties.html new file mode 100644 index 000000000..8b136ada0 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/indexedproperties.html @@ -0,0 +1,90 @@ + + + + + + + + + + + + +

+

- +, , . + , + . +

+

+:

+
+

property Prop[ ]: read + + write ;

+
+

:

+
+

property Prop[ind: + ]: read + + write ;

+
+

+ :

+
+

function GetProp(ind: + ): + ;
+ procedure
SetProp(ind: ; v: );

+
+

, a, +Prop, a.Prop[ind] := value, + SetProp(ind,value), + +a.Prop[ind], +GetProp(ind).

+

, default ;, + , .. + a[ind] a.Prop[ind].

+

- + , ( , ).  + , + .

+

/ + .

+
+

uses GraphABC;
+ const
+  n = 8;
+  sz = 50;
+ type ChessBoard = class
+ private
+  a: array [1..n,1..n] of boolean;
procedure setCell(x,y: integer; value: boolean);
begin
+    if value then
+      Brush.Color := clWhite
+    else Brush.Color := clBlack;
+    Fillrect((x-1)*sz+1,(y-1)*sz+1,x*sz,y*sz);
+    a[x,y] := value;
end;
function getCell(x,y: integer): boolean;
begin
+    Result := a[x,y];
end;
+ public
property Cells[x,y: integer]: boolean read getCell write + setCell; default;
+ end;

+

var c: ChessBoard := new ChessBoard;

+

begin
+  var x,y: integer;
for x:=1 to n do
for y:=1 to n do
+    c[x,y] := Odd(x+y);
+ end.

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/inheritance.html b/PABCNetHelp/LangGuide/Classes/inheritance.html new file mode 100644 index 000000000..449ea27bd --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/inheritance.html @@ -0,0 +1,54 @@ + + + + + + + + + + + + + +

+

. , , + +(, +), , +, +(, +). , + , , + , () + . , + +.

+

+class.

+

:

+
+

type
+  BaseClass = class
+    procedure
p;
+     procedure q(r: real);
end;
+   MyClass = class(BaseClass)
+     procedure p;
+     procedure r(i: integer);
+   end;

+
+

p +, r + MyClass.

+

, , + Object - . , BaseClass + +Object.

+

+.

+

class + sealed + .

+ + diff --git a/PABCNetHelp/LangGuide/Classes/inherited.html b/PABCNetHelp/LangGuide/Classes/inherited.html new file mode 100644 index 000000000..19a034564 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/inherited.html @@ -0,0 +1,74 @@ + + + + + + + + + + + + +

+

() . + , + inherited (.- +). :

+

type
+  Person = class
+  private

+    name: string;
+    age: integer;
+  public
+    constructor Create(nm: string; ag: integer);
+    begin
+      name := nm;
+      age := ag;
+    end;
+    procedure Print;
+    begin
+      writeln(': ',name,'  : ',age);
+    end;
end;

  Student = class(Person)
+   private
+    course, group: integer;
+  public
+    constructor Create(nm: string; ag,c,gr: +integer);
+    begin
+      inherited Create(nm,ag);
+      course := c;
+      group := gr;
+    end;
+    procedure Print;
+    begin
+      inherited Print;
+      writeln(': ',course,'  : ',group);
+    end;
end;

+

Print Student + Print, +Person, inherited Print. + Create Student + Create Person, + inherited.

+

+.

+

+, , +, .

+

, + inherited, + . , Student.Print + :

+

    procedure Print;
+    begin
+      inherited;
+      writeln(': ',course,'  : ',group);
+    end;

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/initfields.html b/PABCNetHelp/LangGuide/Classes/initfields.html new file mode 100644 index 000000000..7a9c0bd17 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/initfields.html @@ -0,0 +1,47 @@ + + + + + + + + + + + +

+

+ + . + , +. , + .

+

:

+
+

type
+  A = class
+  private

+    x: integer + := 1;
+    y: integer;
    l := new List<integer>;
+   public
+     constructor Create(xx,yy: + integer);
+    + begin
+    +  x := xx;
+     +   y := yy;
+     end;
+     constructor Create;
+    + begin
+     end;
end;

+
+

x:=1; l := new List<integer>  + .

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/isas.html b/PABCNetHelp/LangGuide/Classes/isas.html new file mode 100644 index 000000000..9bdb865d6 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/isas.html @@ -0,0 +1,55 @@ + + + + + + + + + + + + + +

is as

+

//

+

is , + . + as + ( + ).

+

a1 - + , B - , a1 is +B + True a1 +, B , False . :

+
+

type
+  A = class
+   end;

+  B = class(A)
+   end;
+ var
a1: A;
+ ...
+ a1 := B.Create;
+ writeln(a1 is B); // True

+
+

a1 - + , B - , a1 as +B + B, a1 +B nil +. :

+
+

var b1: B;
+ ...
+ b1 := a1 as B;

+

+ , :

+
+

if a1 is B then
  b1 := B(a1)
else b1 := nil;

+
+  + + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/methods.html b/PABCNetHelp/LangGuide/Classes/methods.html new file mode 100644 index 000000000..b23e36b05 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/methods.html @@ -0,0 +1,79 @@ + + + + + + + + + + + +

+

, +. , + .

+

( +Java, C#, C++), ( +Delphi, C++). + . :

+
+

type
+  Rectangle = class
+    x1,y1,x2,y2: integer;
+     constructor Create(xx1,yy1,xx2,yy2: integer);
+    begin
+
      x1 := xx1; + x2 := xx2;
+       y1 := yy1; + y2 := yy2;
+    end;
+     function Square: integer;
end;

+

function Rectangle.Square: integer;
+ begin
+  Result := abs(x2-x1) * abs(y2-y1);
+ end;

+
+

, + , + .

+

. + .NET +. + class. + - . + ; + :

+
+

. () +

+
+

, + . , + .

+

:

+
+

type
  Rectangle = class
+   
...
+     class procedure Move(var + r: Rectangle; dx,dy: integer);
+     begin
+       r.x1 += dx; r.x2 += dx;
+       r.y1 += dy; r.y2 += dy;
+     end;
end;
+ ...
+ var r := new Rectangle(10,10,100,100);
+ Rectangle.Move(r,5,5);

+
+

, + , , , +, . + .

+

, +. , , System.Math, + .

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/operoverloading.html b/PABCNetHelp/LangGuide/Classes/operoverloading.html new file mode 100644 index 000000000..2af9d951d --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/operoverloading.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + + + + +

+

- , + , . PascalABC.NET + . + T, + , () - + operator +. +=, +-=, *=, /= + () -, + .

+

:

+
+

type
  Complex = record
    re,im: real;
    + class function operator+(a,b: Complex): Complex;
    + begin
      Result.re := a.re + b.re;
      Result.im := a.im + b.im; +
    end;
    + class function operator=(a,b: Complex): boolean;
    begin
      Result := (a.re = b.re) + and (a.im = b.im);
    end;
  end;

+
+

:

+
    +
  1. + @ ( ), as, + is, new. , + +=, + -=, *=, /=, + .
  2. +
  3. .
  4. +
  5. + , .
  6. +
  7. -, + + (2 - , 1 - ).
  8. +
  9. +=, -=, + *=, /= + + -, + , + , - + . + -.
  10. +
  11. . + : .
  12. +
  13. + , + operator implicit + ( ) + operator explicit ( + ).
  14. +
+

:

+
+

type
  Complex = record
    + ...
    + class function operator implicit(d: real): Complex;
    + begin
      Result.re := d;
      Result.im := 0;
    + end;
    + class function operator explicit(c: Complex): string;
    + begin
      Result := Format('({0},{1})',c.re,c.im);
    + end;
    + class procedure operator+=(var c: Complex; +value: Complex);
    begin
      + c.re += value.re; +
      c.im += value.im;
    + end;
    + + class function operator+(c,c1: Complex): + Complex;
    begin     
      + Result.re := c.re + c1.re; +
      + Result.im := c.im + c1.im; +
    + end;
  end;

+
+

- + class. , + :

+
+

function string.operator+(str: string; n: + integer): string;
begin
  result := str + + n.ToString;
end;

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/properties.html b/PABCNetHelp/LangGuide/Classes/properties.html new file mode 100644 index 000000000..b42976f13 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/properties.html @@ -0,0 +1,127 @@ + + + + + + + + + + + + +

+

+, , . :

+
+

property Prop: read + + write ;

+
+

, + , - + . + :

+
+

function getProp: + ;
+ procedure
setProp(v: );

+
+

+ . , + .

+

+ + + , . read + write , + . +

+

:

+
+

type
+   Person = class
+  private
+    
nm: string;
  +   ag: integer;
+     procedure setAge(a: integer);
    begin
    +   if a>=0 then
+        ag := a
      else + raise new Exception(' + ');
+     end;
+    function getId: string;
+    begin
+      Result := nm + ag.ToString;
+    end;
+   + public
+   ...
+
  property Age: integer read g write setAge;
  property + Name: string read nm;
  property Id: string read + getId;
end;

+

var p: Person;
+ p := new Person('',20);
p.Age := -3; // +
+ var + i: integer := p.Age;
+ writeln(p.Id);

+
+

, Age + , + setAge + . , +Age, ag. + nm +. , Id + , .

+

+read , + +.

+

. , + :

+
+

Inc(p.Age); // !

+
+

, +, :

+
+

a := p.Age;
+ Inc(a);
+ p.Age := a;

+
+

, + += -= *= /=:

+
+

p.Age += 1;

+
+

, + , +- . , + b1 +Button, + +Width:

+
+

b1.Width := 100;

+
+

fwidth :

+
+

procedure SetWidth(w: integer);
+ begin
if (w>0) and (w<>fwidth) then
begin
+    fwidth := w;
+
          
+   end
+ end;

+
+

+if: w<>fwidth. + , + .

+

 

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/self.html b/PABCNetHelp/LangGuide/Classes/self.html new file mode 100644 index 000000000..0c544564a --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/self.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + +

Self

+

+Self, , . +

+

:

+
+

type
+  A = class
+    i: integer;
+     constructor Create(i: integer);
+    begin
+
      Self.i := i;
+    end;
end;

+
+

Create + . Self.i + i , + i Create. + + Self.

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/virtual.html b/PABCNetHelp/LangGuide/Classes/virtual.html new file mode 100644 index 000000000..7682af754 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/virtual.html @@ -0,0 +1,130 @@ + + + + + + + + + + + + + + + + + + + +

+

( . +" ") - , , + , + , + .

+

, + , + - (.. + ). + , , + .

+

:

+
+

type
+  Base = class
+  public

+    procedure Print;
+    begin
+      writeln('Base');
+    end;
end;
+  Derived = class(Base)
+   public
+    procedure Print;
+    begin
+      writeln('Derived');
+    end;
end;

+
+

Base + Derived Print.

+
+

var b: Base := new Derived;
+ b.Print;

+
+

Print - Base Derived? + : +Print Base, + b. , + +. , + , + , b, + Derived.Print ( +, ). , + , , + , +, - . + , + . , + , + .

+

, + virtual ;. + override:

+
+

type
+  Base = class
+  public

+    procedure Print; virtual;
+    begin
+      writeln('Base');
+    end;
end;
+  Derived = class(Base)
+   public
+    procedure Print; override;
+    begin
+      writeln('Derived');
+    end;
end;

+
+

.

+
+

var b: Base := new Derived;
+ b.Print;

+
+

Print +Derived + .

+

, Print + . + ( ) + reintroduce:

+
+

type
  DerivedTwice1 = class(Derived)
+   public
    procedure Print;
reintroduce;
    + begin
      writeln('DerivedTwice1');
    + end;
  end;

+
+

, +virtual reintroduce:

+
+

type
  DerivedTwice2 = class(Derived)
+   public
    procedure Print;
virtual; + reintroduce;
    + begin
      writeln('DerivedTwice2');
    + end;
  end;

+
+

+reintroduce, - + , . , + reintroduce + .

+

+ , . , public + private-.

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Classes/visibility.html b/PABCNetHelp/LangGuide/Classes/visibility.html new file mode 100644 index 000000000..ceabf8324 --- /dev/null +++ b/PABCNetHelp/LangGuide/Classes/visibility.html @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + +

+

, () , + . PascalABC.NET + : public (), private (), protected () + internal (). + , public, + , +private +, protected + + , internal ( .NET, + - , +.exe .dll-). +, +private protected + , .

+

. + , , +, . , + internal. + , .

+

, :

+
+

type
+  A = class
+  private
  x: integer;
protected
+    a: integer;
  public
+    constructor
Create(xx: integer);
+    begin
+
      x := xx; // , + .. x
+       a := 0;  // +
+     end;
+   end
;

+ : +
+ + type
+  B = class(A)
+   public
+
  +   procedure print;
+    begin
+      writeln(a); // , .. + a -
+
      writeln(x); // , + .. -
+    end;
end;
+ ...
+ var b1: B := new B(5);
+ ...
+ writeln(b1.x); // , .. - +
writeln(b1.a); // , .. a - +
+ b1.print; // , .. print - +
+

+ .

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/CompilerDirectives/index_directives.html b/PABCNetHelp/LangGuide/CompilerDirectives/index_directives.html new file mode 100644 index 000000000..95e943fe1 --- /dev/null +++ b/PABCNetHelp/LangGuide/CompilerDirectives/index_directives.html @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

- +, {$ ... }. + , $ { +, .

+

:

+
{$ }
+

+

{$apptype < >} - +(windows/console).

+

{$reference < >} - .

+

{$gendoc <>} - XML . : +true, false.

+

{$mainresource < >} - .res +

+

{$resource < >} - +

+

{$region < >} - ( +

+

{$endregion} -

+

{$product < >} -

+

{$version < >} -

+

{$company <>} -

+

{$copyright <>} -

+

{$trademark < >} -

+

{$include < >} - + .

+

{$define <>} - , + $ifdef, $ifndef.

+

{$undef <>} - , + $define.

+

{$ifdef <>} - +( : " ").

+

{$ifndef <>} - +( : " ").

+

{$else} - "" .

+

{$endif} - .

+

{$faststrings} - , + .

+

{$string_nullbased+} - , 0.

+

{$string_nullbased-} - , 0.

+

$ifdef, $ifndef $else + $endif . + $ifdef, $ifndef + $endif. $ifdef, $ifndef +$endif ( + ) $else.

+

. .

+
{$define DEBUG}
begin
  {$ifndef + DEBUG}
    writeln(' DEBUG ');
  + {$else}
    writeln(' DEBUG ');
  + {$endif}
end.
+ + + diff --git a/PABCNetHelp/LangGuide/ExceptionHandling/ExeptionsExamples.html b/PABCNetHelp/LangGuide/ExceptionHandling/ExeptionsExamples.html new file mode 100644 index 000000000..48d755859 --- /dev/null +++ b/PABCNetHelp/LangGuide/ExceptionHandling/ExeptionsExamples.html @@ -0,0 +1,94 @@ + + + + + + + + + +

+

1. .

+

.

+
+

var i: integer;
+ begin
+  readln(i);
+  writeln(i);
+  writeln(' ');
+ end.

+
+

(, + ), ( ), + writeln .

+

try:

+
+

var i: integer;
+ begin
try
+    readln(i);
+    writeln(i);
except
+    writeln(' ');
end;
+  writeln(' ');
+ end.

+
+

+, except, + . , + writeln(i).

+

try + , +except +.

+

2. .

+
+

var a,b: integer;
+ assign(f,'a.txt');
+ try
+
  readln(a,b);
+   reset(f);
+   c:=a div b;
+ except
+   on System.DivideByZeroException do
+    writeln(' 0'); 
on System.IO.IOException do
+    writeln(' '); 
+ end;

+
+

+ , . + try ... +except try ... +finally.

+

3. try +... except try +... finally.

+
+

assign(f,'a.txt');
+ try
+  reset(f);
+   try
+    try

+       c:=a div b;
+     except
+       on System.DivideByZeroException do
        + writeln(' 0'); 
    + end;
+   finally
+    close(f);
+   end;
+ except
on System.IO.IOException do
+    writeln(' '); 
+ end;

+
+

, , +c 0, + try, , + - . , , + 0 .

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/ExceptionHandling/Overview.html b/PABCNetHelp/LangGuide/ExceptionHandling/Overview.html new file mode 100644 index 000000000..dff44e6cf --- /dev/null +++ b/PABCNetHelp/LangGuide/ExceptionHandling/Overview.html @@ -0,0 +1,134 @@ + + + + + + + + + +

:

+

, + , + . , + Exception, + .

+

+ . + .

+

, +. +try +... except.

+

, + , , , +. , , , + . , + :

+
+

function mymod(a,b: integer): integer;
+ begin
+  Result := a - (a div b) * b;
+ end;

+
+

mymod(1,0), + System.DivideByZeroException + 0.

+

+ mymod:

+
+

function mymod(a,b: integer): integer;
+ begin
+
  if b = 0 then
+    writeln(' mymod: 0');
+  Result := a - (a div b) * b;
+ end;

+
+

, , + mymod, , + . , mymod + .

+

- + System.DivideByZeroException:

+
+

try
+  readln(a,b);
+  writeln(mymod(a,b) mod (a-1));
+   ...
+ except
on System.DivideByZeroException do
+    writeln(' 0'); 
+ end;

+
+

, + , + . , + ( , "" + ).

+

, : + System.DivideByZeroException + a=1 mymod. + + mymod:

+
+

type MyModErrorException = class(System.Exception) end;   +

+

function mymod(a,b: integer): integer;
+ begin
if b = 0 then
+    raise new MyModErrorException(' mymod: 0');
+  Result := a - (a div b) * b;
+ end;

+
+

:

+
+

try
+  readln(a,b);
+  writeln(mymod(a,b) mod (a-1));
+   ...
+ except
on System.DivideByZeroException do
+    writeln(' 0'); 
on e: MyModErrorException do
+    writeln(e.Message);
else writeln('- ') 
+ end;

+
+

MyModErrorException +  System.ArithmeticException, +System.DivideByZeroException, :   +

+
+

type MyModErrorException = class(System.ArithmeticException) end;

+

...

+

try
+  readln(a,b);
+  writeln(mymod(a,b) mod (a-1));
+   ...
+ except
on e: System.ArithmeticException do
+    writeln(e.Message); 
+   else writeln('- ') 
+ end;

+
+

, . + mymod + System.DivideByZeroException + - MyModErrorException:

+
+

function mymod(a,b: integer): integer;
+ begin
+   try
+  +  Result := a - (a div b) * b;
except
+    on e: System.DivideByZeroException do
+       raise + new + MyModErrorException(' mymod: 0');
end;
+ end;

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/ExceptionHandling/StandardExceptions.html b/PABCNetHelp/LangGuide/ExceptionHandling/StandardExceptions.html new file mode 100644 index 000000000..a65a5e879 --- /dev/null +++ b/PABCNetHelp/LangGuide/ExceptionHandling/StandardExceptions.html @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

System.Exception, + :

+
+

type
+  Exception = class
+  public

+    constructor Create;
+    constructor Create(message: string);
+    property Message: string; // +
+    property
StackTrace: string; + //
+   end;

+
+

Message + , .

+

StackTrace + .

+

, System + System.SystemException:

+
+

System.OutOfMemoryException - + ;
System.StackOverflowException - ( + , );
+ System.AccessViolationException - + ;
System.ArgumentException - + ;
+ System.ArithmeticException - + . :

+
+

System.DivideByZeroException - + 0;
+ System.OverflowException - + ;

+
+

System.FormatException - + (, );
+ System.IndexOutOfRangeException - + ;
System.InvalidCastException - + ;
System.NullReferenceException - + + ;
System.IO.IOException - + -. :

+
+

System.IO.IOException.DirectoryNotFoundException - + ;
+ System.IO.IOException.EndOfStreamException - + ;
+ System.IO.IOException.FileNotFoundException - + .
+
 

+
+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/ExceptionHandling/reraise.html b/PABCNetHelp/LangGuide/ExceptionHandling/reraise.html new file mode 100644 index 000000000..b694e0fba --- /dev/null +++ b/PABCNetHelp/LangGuide/ExceptionHandling/reraise.html @@ -0,0 +1,34 @@ + + + + + + + + + + + +

+

+except raise + :

+
+

raise;

+
+

:

+
+

try
+  ...
+ except
on FileNotFoundException do
begin
+    log.WriteLine(' '); // +
+    raise;
end;
+ end;

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/ExceptionHandling/userExceptions.html b/PABCNetHelp/LangGuide/ExceptionHandling/userExceptions.html new file mode 100644 index 000000000..9f19e731a --- /dev/null +++ b/PABCNetHelp/LangGuide/ExceptionHandling/userExceptions.html @@ -0,0 +1,58 @@ + + + + + + + + + +

,

+

- + Exception:

+
+

type MyException = class(Exception) end;

+
+

- , , , + :

+
+

try
+  ...
+ except
+   on MyException do
    writeln(' + 0'); 
  on Exception do
    + writeln(' '); 
+ end;

+
+

, , + :

+
+

type
+  FileNotFoundException = class(Exception)
+
    fname: string;
+     constructor Create(msg,fn: string);
+     begin
+       inherited Create(msg);
+      fname := fn;
+     end;
+  end
;

+

...

+

procedure ReadFile(fname: string);
+ begin
if not + FileExists(fname) then
+    raise new FileNotFoundException(' + ',fname);
+ end;

+

...

+

try
+  ...
+ except
+   on e: FileNotFoundException do
    + writeln(' '+e.fname+' + '); 
+ end;

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Aggregate.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Aggregate.html new file mode 100644 index 000000000..7323d159e --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Aggregate.html @@ -0,0 +1,22 @@ + + + + +

Aggregate

sequence of T.

+ + + +
+function Aggregate(func: (T,T)->T): T; +
       . . +
+function Aggregate<Accum>(seed: T; func: (Accum,T)->Accum): T; +
       . . . +
+function Aggregate<Accum,Res>(seed: T; func: (Accum,T)->Accum; resultSelector: Accum->Res): T; +
       . , . . +
+

begin
  var + a := Seq(2,3,5,6);
  Println(a.Aggregate(1,(p,x) -> p*x));
+ end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Any, All.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Any, All.html new file mode 100644 index 000000000..cc42543ec --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Any, All.html @@ -0,0 +1,23 @@ + + + + + +

Any, All

sequence of T.

+ + + +
+function Any(): boolean; +
      , - . +
+function Any(predicate: T->boolean): boolean; +
      , - . +
+function All(predicate: T->boolean): boolean; +
      , . +
+

begin
  var + a := Lst(1,3,5);
  Println(a.All(x -> x mod 2 <> 0)); // True
  + Println(a.Any(x -> x mod 2 = 0));  // False
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/AsEnumerable.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/AsEnumerable.html new file mode 100644 index 000000000..75ed68aa0 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/AsEnumerable.html @@ -0,0 +1,16 @@ + + + + +

AsEnumerable

sequence of T.

+ +
+function AsEnumerable(): sequence of T; +
       , IEnumerable. +
+

function Print<T>(Self: + array of T): array of T; extensionmethod;
+ begin
  Self.AsEnumerable.Print;
  Result + := Self;
end;

begin
  + Arr(1,2,3).Print
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Cast.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Cast.html new file mode 100644 index 000000000..875e86cdd --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Cast.html @@ -0,0 +1,15 @@ + + + + +

Cast

sequence of T.

+ +
+function Cast<Res>(): sequence of Res; +
       System.Collections.IEnumerable . +
+

begin
  var + a: sequence of integer;
  var b: + sequence of real;
  a := Seq(1,3,5);
  b := + a.Cast&<real>();
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Concat.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Concat.html new file mode 100644 index 000000000..1ed1b57a7 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Concat.html @@ -0,0 +1,14 @@ + + + + +

Concat

sequence of T.

+ +
+function Concat(second: sequence of T): sequence of T; +
       , . +
+

begin
  var + a1 := Lst(2,3,5);
  var a2 := Seq(4,7,8);
  + a1.Concat(a2).Println; // 2 3 5 4 7 8
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Contains.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Contains.html new file mode 100644 index 000000000..177f7cccd --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Contains.html @@ -0,0 +1,18 @@ + + + + +

Contains

sequence of T.

+ + +
+function Contains(value: T): boolean; +
      , , . +
+function Contains(value: T; comparer: IEqualityComparer<T>): boolean; +
      , , . +
+

begin
  var + a := Lst(1,3,5,6);
  Println(a.Contains(666)); // False
  + Println(666 in a); // False
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Count.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Count.html new file mode 100644 index 000000000..4ac12efbe --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Count.html @@ -0,0 +1,26 @@ + + + + +

Count

sequence of T.

+ + + + +
+function Count(): integer; +
       . +
+function Count(predicate: T->boolean): integer; +
       , , . +
+function LongCount(): int64; +
       Int64, . +
+function LongCount(predicate: T->boolean): int64; +
       Int64, , . +
+

begin
  var + a := Lst(1,3,5,6);
  Println(a.Count(x -> x mod 2 <> 0)); // 3
+ end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/DefaultIfEmpty.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/DefaultIfEmpty.html new file mode 100644 index 000000000..3b1b952ba --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/DefaultIfEmpty.html @@ -0,0 +1,18 @@ + + + + +

DefaultIfEmpty

sequence of T.

+ + +
+function DefaultIfEmpty(): sequence of T; +
       , , . +
+function DefaultIfEmpty(defaultValue: T): sequence of T; +
       , , . +
+

begin
  var + a := Arr(1,2,3,4);
  a.Skip(4).DefaultIfEmpty.Println; // 0
+ end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Distinct.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Distinct.html new file mode 100644 index 000000000..33c407bae --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Distinct.html @@ -0,0 +1,18 @@ + + + + +

Distinct

sequence of T.

+ + +
+function Distinct(): sequence of T; +
       . +
+function Distinct(comparer: IEqualityComparer<T>): sequence of T; +
       , comparer. +
+

begin
  var + a := Arr('aaa','bbb','ccc','aaa','ccc');
  a.Distinct.Println; // + aaa bbb ccc
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/ElementAt, ElementAtOrDefault.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/ElementAt, ElementAtOrDefault.html new file mode 100644 index 000000000..ce938359c --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/ElementAt, ElementAtOrDefault.html @@ -0,0 +1,19 @@ + + + + + +

ElementAt, ElementAtOrDefault

sequence of T.

+ + +
+function ElementAt(index: integer): T; +
       . +
+function ElementAtOrDefault(index: integer): T; +
       , . +
+

begin
  var + a := Arr(1,2,3,4);
  Println(a.ElementAt(2)); // 3
  + Println(a.ElementAtOrDefault(10)); // 0
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/First, FirstOrDefault.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/First, FirstOrDefault.html new file mode 100644 index 000000000..3ba334b8c --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/First, FirstOrDefault.html @@ -0,0 +1,28 @@ + + + + + +

First, FirstOrDefault

sequence of T.

+ + + + +
+function First(): T; +
       . +
+function First(predicate: T->boolean): T; +
       , . +
+function FirstOrDefault(): T; +
       , . +
+function FirstOrDefault(predicate: T->boolean): T; +
       , . +
+

begin
  var + a := Arr(1,2,3,4);
  Println(a.Skip(2).First); // 3
  + Println(a.First(x -> x mod 2 = 0); // 2
  + Println(a.FirstOrDefault(x -> x>5); // 0 
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/ForEach.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/ForEach.html new file mode 100644 index 000000000..5194a386a --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/ForEach.html @@ -0,0 +1,14 @@ + + + + +

ForEach

sequence of T.

+ +
+procedure ForEach(action: T->()); +
       . +
+

begin
  var + a := Lst(2,3,5);
  var p := 1;
  a.ForEach(procedure(x) + -> p *= x);
  Println(p);
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/GroupBy.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/GroupBy.html new file mode 100644 index 000000000..371a234a8 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/GroupBy.html @@ -0,0 +1,47 @@ + + + + +

GroupBy

sequence of T.

+ + + + + + + + +
+function GroupBy<Key>(keySelector: T->Key): IEnumerable<IGrouping<Key,T>>; +
       ; . +
+function GroupBy<Key>(keySelector: T->Key; comparer: System.Collections.Generic.IEqualityComparer<Key>): IEnumerable<IGrouping<Key,T>>; +
       , ; . +
+function GroupBy<Key,Element>(keySelector: T->Key; elementSelector: T->Element): IEnumerable<IGrouping<Key,T>>; +
       . ; . +
+function GroupBy<Key,Element>(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer<Key>): IEnumerable<IGrouping<Key,Element>>; +
       . , . +
+function GroupBy<Key,Res>(keySelector: T->Key; resultSelector: (Key,sequence of T)->Res): sequence of Res; +
       . +
+function GroupBy<Key,Element,Res>(keySelector: T->Key; elementSelector: T->Element; resultSelector: (Key,sequence of Element)->Res): sequence of Res; +
       . . +
+function GroupBy<Key,Res>(keySelector: T->Key; resultSelector: (Key,sequence of T)->Res; comparer: IEqualityComparer<Key>): sequence of Res; +
       . . +
+function GroupBy<Key,Element,Res>(keySelector: T->Key; elementSelector: System.T->Element; resultSelector: (Key,sequence of Element)->Res; comparer: IEqualityComparer<Key>): sequence of Res; +
       . , . +
+

begin
  var + a := Arr(('',3),('',1),('',1),
    + ('',3),('',2),('',1));
  var groups + := a.GroupBy(s->s[1]);

  foreach var + g in groups do
  begin
    + Print(g.Key+':');
    g.Select(x->x[0]).Println;
  + end;
end.

:
3: +
1:
2:
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/GroupJoin.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/GroupJoin.html new file mode 100644 index 000000000..943791d81 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/GroupJoin.html @@ -0,0 +1,22 @@ + + + + +

GroupJoin

sequence of T.

+ + +
+function GroupJoin<TInner,Key,Res>(inner: sequence of TInner; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,sequence of TInner)->Res): sequence of Res; +
       . resultSelector . +
+function GroupJoin<TInner,Key,Res>(inner: sequence of TInner; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,sequence of TInner)->Res; comparer: IEqualityComparer<Key>): sequence of Res; +
       . . resultSelector . +
+

begin
  var + people := Arr((1,''),(2,''),(3,''));
  var + subjects := Arr((1,''),(1,''),(2,'')
    + ,(3,''),(1,''),(2,''));

  + people.GroupJoin(subjects,p->p[0],s->s[0],(p,ss)->(p[1],ss.Select(x->x[1]))).Println(NewLine);
+ end.

:
(,[,,])
+ (,[,])
(,[])
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Join.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Join.html new file mode 100644 index 000000000..6ab1594e3 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Join.html @@ -0,0 +1,23 @@ + + + + +

Join

sequence of T.

+ + +
+function Join<TInner,Key,Res>(inner: sequence of TInner; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,TInner)->Res): sequence of Res; +
       . resultSelector . +
+function Join<TInner,Key,Res>(inner: sequence of TInner; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,TInner)->Res; comparer: System.Collections.Generic.IEqualityComparer<Key>): sequence of Res; +
       . resultSelector . comparer. +
+

begin
  var + people := Arr((1,''),(2,''),(3,''));
  var + subjects := Arr((1,''),(1,''),(2,'')
    + ,(3,''),(1,''),(2,''));

  + people.Join(subjects,p->p[0],s->s[0],(p,s)->(p[1],s[1])).Println(NewLine);
+ end.

:
(,)
+ (,)
(,)
(,)
(,)
+ (,)
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/JoinIntoString.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/JoinIntoString.html new file mode 100644 index 000000000..847b76ecc --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/JoinIntoString.html @@ -0,0 +1,14 @@ + + + + +

JoinIntoString

sequence of T.

+ +
+function JoinIntoString(delim: string := ' '): string; +
       , , delim . +
+

begin
  var + a := Arr('aaa','bbb','ccc');
  var s: string := + a.JoinIntoString('');
  Println(s); // aaabbbccc
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Last, LastOrDefault.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Last, LastOrDefault.html new file mode 100644 index 000000000..37fd065e3 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Last, LastOrDefault.html @@ -0,0 +1,28 @@ + + + + + +

Last, LastOrDefault

sequence of T.

+ + + + +
+function Last(): T; +
       . +
+function Last(predicate: T->boolean): T; +
       , . +
+function LastOrDefault(): T; +
       , . +
+function LastOrDefault(predicate: T->boolean): T; +
       , , , . +
+

begin
  var + a := Arr(1,2,3,4);
  Println(a.Last); // 4
  + Println(a.Last(x -> x mod 2 = 0); // 4
  + Println(a.LastOrDefault(x -> x>5); // 0
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Min, Max.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Min, Max.html new file mode 100644 index 000000000..02b46b2c8 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Min, Max.html @@ -0,0 +1,29 @@ + + + + + +

Min, Max

sequence of T.

+ + + + +
+function Min(): ; +
       . +
+function Min(selector: T->): ; +
       . +
+function Max(): ; +
       . +
+function Max(selector: T->): ; +
       . +
+

begin
  var + a := Lst(1,3,5,6);
  Println(a.Min, a.Max);
  var + b := + Arr(('',20),('',21),('',28));
  Println(b.Min(x -> + x[1]));  
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/OfType.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/OfType.html new file mode 100644 index 000000000..ba8f6b7f0 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/OfType.html @@ -0,0 +1,14 @@ + + + + +

OfType

sequence of T.

+ +
+function OfType<Res>(): sequence of Res; +
       System.Collections.IEnumerable . . . +
+

begin
  var + a := new object[](1,2.5,'d','ff',3.4);
  a.OfType&<real>().Println;
+ end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/OrderBy, OrderByDescending.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/OrderBy, OrderByDescending.html new file mode 100644 index 000000000..666101130 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/OrderBy, OrderByDescending.html @@ -0,0 +1,29 @@ + + + + + +

OrderBy, OrderByDescending

sequence of T.

+ + + + +
+function OrderBy<Key>(keySelector: T->Key): System.Linq.IOrderedEnumerable<T>; +
       . keySelector - , . +
+function OrderBy<Key>(keySelector: T->Key; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
       comparer . keySelector - , . +
+function OrderByDescending<Key>(keySelector: T->Key): System.Linq.IOrderedEnumerable<T>; +
       . keySelector - , . +
+function OrderByDescending<Key>(keySelector: T->Key; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
       comparer . keySelector - , . +
+

begin
  var
a := + Arr(('',20),('',21),('',28));
  a.OrderBy(t -> + t[0]).Println;           + // (,28) (,20) (,21)
  a.OrderByDescending(t -> + t[1]).Println; // (,28) (,21) (,20)
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Print.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Print.html new file mode 100644 index 000000000..c75a6b1d2 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Print.html @@ -0,0 +1,18 @@ + + + + +

Print

sequence of T.

+ + +
+function Print(delim: string := ' '): sequence of T; +
       , delim . +
+function Println(delim: string := ' '): sequence of T; +
       , delim , . +
+

begin
  var
a := + Arr(1,3,5);
  a.Println;
  + ReadLines('a.txt').Println(NewLine);
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Reverse.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Reverse.html new file mode 100644 index 000000000..7abb455d7 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Reverse.html @@ -0,0 +1,14 @@ + + + + +

Reverse

sequence of T.

+ +
+function Reverse(): sequence of T; +
       . +
+

begin
  var + a := Range(1,9);
  a.Reverse.Println; // 9 8 7 6 5 4 3 2 1
+ end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Select.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Select.html new file mode 100644 index 000000000..9d3f9ee8d --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Select.html @@ -0,0 +1,23 @@ + + + + +

Select

sequence of T.

+ + +
+function Select<Res>(selector: T->Res): sequence of Res; +
       selector. , . +
+function Select<Res>(selector: (T,integer)->Res): sequence of Res; +
       selector, . , . +
+

+
+ +begin
  var a := + Arr(1,2,3,4,5,6);
  a.Select(x -> x*x).Println; // 1 4 9 16 25 36 +
end. +
+
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/SelectMany.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/SelectMany.html new file mode 100644 index 000000000..56531acd7 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/SelectMany.html @@ -0,0 +1,26 @@ + + + + +

SelectMany

sequence of T.

+ + + + +
+function SelectMany<Res>(selector: T->sequence of Res): sequence of Res; +
       . . +
+function SelectMany<Res>(selector: (T,integer)->sequence of Res): sequence of Res; +
       . . +
+function SelectMany<Coll,Res>(collSelector: (T,integer)->sequence of Coll; resultSelector: (T,Coll)->Res): sequence of Res; +
       , . . . +
+function SelectMany<Coll,Res>(collSelector: T->sequence of Coll; resultSelector: (T,Coll)->Res): sequence of Res; +
       , . . +
+

begin
  var
a := + Arr(Arr(1,2,3),Arr(4,5,6),Arr(7,8,9));
  a.SelectMany(x -> + x).Println; // 1 2 3 4 5 6 7 8 9
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/SequenceEqual.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/SequenceEqual.html new file mode 100644 index 000000000..9a4e66ee8 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/SequenceEqual.html @@ -0,0 +1,18 @@ + + + + +

SequenceEqual

sequence of T.

+ + +
+function SequenceEqual(second: sequence of T): boolean; +
      , . +
+function SequenceEqual(second: sequence of T; comparer: IEqualityComparer<T>): boolean; +
      , , . +
+

begin
  var + a := Arr(1,2,3);
  var b := Lst(1,2,3);
  + a.SequenceEqual(b); 
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Single, SingleOrDefault.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Single, SingleOrDefault.html new file mode 100644 index 000000000..31db1ce4a --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Single, SingleOrDefault.html @@ -0,0 +1,28 @@ + + + + + +

Single, SingleOrDefault

sequence of T.

+ + + + +
+function Single(): T; +
       , 1. +
+function Single(predicate: T->boolean): T; +
       , , , . +
+function SingleOrDefault(): T; +
       , ; , . +
+function SingleOrDefault(predicate: T->boolean): T; +
       , , , ; , . +
+

begin
  var + a := Arr(1,2,3,4);
  Println(a.Single); //
  + Println(a.Single(x -> x>3); // 4
  Println(a.SingleOrDefault(x -> + x>5); // 0
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Sorted.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Sorted.html new file mode 100644 index 000000000..783a0e17a --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Sorted.html @@ -0,0 +1,21 @@ + + + + + +

Sorted, SortedDescending

sequence of T.

+ +
+function Sorted(): sequence of T; +
       . +
+ + +
+function SortedDescending(): sequence of T; +
       . +
+

begin
  var
a := + Arr(6,2,7,4,8,1);
  a.Sorted.Println; // 1 2 4 6 7 8
  + a.SortedDescending.Println; // 8 7 6 4 2 1
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Sum, Average.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Sum, Average.html new file mode 100644 index 000000000..e45b560c9 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Sum, Average.html @@ -0,0 +1,29 @@ + + + + + +

Sum, Average

sequence of T.

+ + + + +
+function Sum(): ; +
       . +
+function Sum(selector: T->): ; +
       , . +
+function Average(): real; +
       . +
+function Average(selector: T->): real; +
       , . +
+

begin
  var + a := Lst(1,3,5,6);
  Println(a.Sum);
  var + b := + Arr(('',20),('',21),('',28));
  Println(b.Average(x + -> x[1]));  
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Take, TakeWhile, Skip, SkipWhile.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Take, TakeWhile, Skip, SkipWhile.html new file mode 100644 index 000000000..dd980c09d --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Take, TakeWhile, Skip, SkipWhile.html @@ -0,0 +1,39 @@ + + + + + + + +

Take, TakeWhile, Skip, SkipWhile

sequence of T.

+ + + + + + +
+function Take(count: integer): sequence of T; +
       count . +
+function TakeWhile(predicate: T->boolean): sequence of T; +
       , , . +
+function TakeWhile(predicate: (T,integer)->boolean): sequence of T; +
       , , ( ). +
+function Skip(count: integer): sequence of T; +
       count . +
+function SkipWhile(predicate: T->boolean): sequence of T; +
       , , . +
+function SkipWhile(predicate: (T,integer)->boolean): sequence of T; +
       , , ( ). +
+

begin
  var
a := + Arr(1,2,3,4,5,6);
  a.Take(3).Println; // 1 2 3
  a.Skip(3).Println; + // 4 5 6
  a.Skip(2).Take(3).Println; // 3 4 5
  a.TakeWhile(x + -> x<3).Println; // 1 2 +
  a.SkipWhile(x -> x<5).Println; // 5 6
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/ThenBy,ThenByDescending.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/ThenBy,ThenByDescending.html new file mode 100644 index 000000000..2ed849107 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/ThenBy,ThenByDescending.html @@ -0,0 +1,32 @@ + + + + + +

ThenBy,ThenByDescending

sequence of T.

+ + + + +
+function ThenBy<Key>(keySelector: T->Key): System.Linq.IOrderedEnumerable<T>; +
       . keySelector - , . +
+function ThenBy<Key>(keySelector: T->Key; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
       comparer . keySelector - , . +
+function ThenByDescending<Key>(keySelector: T->Key): System.Linq.IOrderedEnumerable<T>; +
       . keySelector - , . +
+function ThenByDescending<Key>(keySelector: T->Key; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
       comparer . keySelector - , . +
+

+ +begin
  var  a + := Arr(('', 20), ('', 21),
    ('', 18), + ('', 28), ('', 25));
  a.OrderBy(t -> t[0]).ThenBy(t -> + t[1]).Println;
    // (,28) (,18) (,20) + (,25) (,21) +
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/ToArray, ToList.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/ToArray, ToList.html new file mode 100644 index 000000000..de3d08882 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/ToArray, ToList.html @@ -0,0 +1,20 @@ + + + + + +

ToArray, ToList

sequence of T.

+ + +
+function ToArray(): array of T; +
       . +
+function ToList(): List<T>; +
       List . +
+

begin
  var + a := Arr(1,2,3);
  a := a.Select(x->x*x).ToArray;
  + var l := Lst(1,2,3);
  l := l.Select(x->x*x).ToList;
+ end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/ToDictionary.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/ToDictionary.html new file mode 100644 index 000000000..9908261f6 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/ToDictionary.html @@ -0,0 +1,27 @@ + + + + +

ToDictionary

sequence of T.

+ + + + +
+function ToDictionary<Key>(keySelector: T->Key): Dictionary<Key,T>; +
       Dictionary . +
+function ToDictionary<Key>(keySelector: T->Key; comparer: IEqualityComparer<Key>): Dictionary<Key,T>; +
       Dictionary . +
+function ToDictionary<Key,Element>(keySelector: T->Key; elementSelector: T->Element): Dictionary<Key,Element>; +
       Dictionary . +
+function ToDictionary<Key,Element>(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer<Key>): Dictionary<Key,Element>; +
       Dictionary . +
+

begin
  var + a := Arr(('',3),('',1),('',2));
  var + d := a.ToDictionary(x->x[1],x->x[0]);
  d.Println; // (3,) + (1,) (2,)
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/ToLookup.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/ToLookup.html new file mode 100644 index 000000000..6b37764c8 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/ToLookup.html @@ -0,0 +1,24 @@ + + + + +

ToLookup

sequence of T.

+ + + + +
+function ToLookup<Key>(keySelector: T->Key): System.Linq.ILookup<Key,T>; +
       System.Linq.Lookup . +
+function ToLookup<Key>(keySelector: T->Key; comparer: IEqualityComparer<Key>): System.Linq.ILookup<Key,T>; +
       System.Linq.Lookup . +
+function ToLookup<Key,Element>(keySelector: T->Key; elementSelector: T->Element): System.Linq.ILookup<Key,Element>; +
       System.Linq.Lookup . +
+function ToLookup<Key,Element>(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer<Key>): System.Linq.ILookup<Key,Element>; +
       System.Linq.Lookup . +
+

+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/ToStr.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/ToStr.html new file mode 100644 index 000000000..7a6f1e37a --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/ToStr.html @@ -0,0 +1,12 @@ + + + + +

ToStr

sequence of T.

+ +
+function ToStr(delim: string := ' '): string; +
       , delim . +
+

+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Union,Intersect,Except.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Union,Intersect,Except.html new file mode 100644 index 000000000..f1233fdde --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Union,Intersect,Except.html @@ -0,0 +1,38 @@ + + + + + + +

Union,Intersect,Except

sequence of T.

+ + + + + + +
+function Union(second: sequence of T): sequence of T; +
       , . +
+function Union(second: sequence of T; comparer: IEqualityComparer<T>): sequence of T; +
       , , . +
+function Intersect(second: sequence of T): sequence of T; +
       , . +
+function Intersect(second: sequence of T; comparer: IEqualityComparer<T>): sequence of T; +
       , , . +
+function Except(second: sequence of T): sequence of T; +
       , . +
+function Except(second: sequence of T; comparer: IEqualityComparer<T>): sequence of T; +
       , , . +
+

begin
  var + a := Range(1,5);
  var b := Range(3,7);
  + a.Union(b).Println;     // 1 2 3 4 5 6 7
  + a.Intersect(b).Println; // 3 4 5
  a.Except(b).Println;    + // 1 2
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Where.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Where.html new file mode 100644 index 000000000..ad09cd0ab --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Where.html @@ -0,0 +1,18 @@ + + + + +

Where

sequence of T.

+ + +
+function Where(predicate: T->boolean): sequence of T; +
       . , . +
+function Where(predicate: (T,integer)->boolean): sequence of T; +
       . , . +
+

begin
  var
a := + Arr(1,2,3,5,6);
  a.Where(x -> x mod 2 = + 0).Println; // 2 6
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/Files/Zip.html b/PABCNetHelp/LangGuide/FuncProgramming/Files/Zip.html new file mode 100644 index 000000000..8825cc59b --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/Files/Zip.html @@ -0,0 +1,14 @@ + + + + +

Zip

sequence of T.

+ +
+function Zip<TSecond,Res>(second: sequence of TSecond; resultSelector: (T,TSecond)->Res): sequence of Res; +
       , , . +
+

begin
  var + a := Arr(1,2,3);
  var b := Lst(4,5,6);
  + a.Zip(b,(x,y) -> x+y).Println; // 5 7 9 
end.
+ diff --git a/PABCNetHelp/LangGuide/FuncProgramming/capture_variables.html b/PABCNetHelp/LangGuide/FuncProgramming/capture_variables.html new file mode 100644 index 000000000..3b41e95e4 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/capture_variables.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + +

-

+

- + . -.

+

1. Select.

+
begin
  var a := + Seq(2,3,4);
  var z := 1;
  var + q := a.Select(x->x+z);
  q.Println;
  z := 2;
  + q.Println;
end.
+

- x->x+z z. + , z +a.Select(x->x+z), q, + z.

+

2. .

+
begin
  var sum := + 0;
  var AddToSum: integer -> () := + procedure (x) -> begin sum += x; + end;

  AddToSum(1);
  AddToSum(3);
  + AddToSum(5);

  writeln(sum);
end.
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/FuncProgramming/extensionmethodsforsequences.html b/PABCNetHelp/LangGuide/FuncProgramming/extensionmethodsforsequences.html new file mode 100644 index 000000000..d516d72d9 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/extensionmethodsforsequences.html @@ -0,0 +1,63 @@ + + + + + + + + + + + + +

+

+ , + .

+

+ +

 

+ + + + + diff --git a/PABCNetHelp/LangGuide/FuncProgramming/lambdas.html b/PABCNetHelp/LangGuide/FuncProgramming/lambdas.html new file mode 100644 index 000000000..efd25765e --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/lambdas.html @@ -0,0 +1,72 @@ + + + + + + + + + + + + + +

-

+

- - , + , - + " ".

+

-.

+

+- .

+

- +, , +, .

+

- label goto .

+

- + .

+

1.

+
var f: integer -> integer := x -> x*x;
f(2);
+

x -> x -, + x + integer, +x*x integer. + :

+
function #fun1(x: integer): integer;
begin
+
  Result := x*x;
end;
...
var + f: integer -> integer := #fun1;
f(2);
+

#fun1 - , . , + #fun1 .

+

2.

+

- . , +

+
var a := Seq(3,2,4,8,5,5);
a.Where(x -> x + mod 2 = 0).Print;
+

- x -> x mod 2 = 0 + a.

+

3.

+
var a := Seq(1,3,5);
+ writeln(a.Aggregate(0,(s,x)->s+x*x));
+

-.

+

4. +-.

+
procedure p(f: integer -> integer);
+ begin
  write(f(1));
end;
+
procedure p(f: real -> real);
begin
  + write(f(2.5));
end;

begin
  + p((x: real)->x*x);
end.
+

p(x -> x) , + , p . + .

+

5. -.

+
procedure p(a: integer -> ());
+ begin
  a(1)
end;

begin
  + p(procedure(x) -> write(x));
end.
+ + + diff --git a/PABCNetHelp/LangGuide/FuncProgramming/lambdasyntax.html b/PABCNetHelp/LangGuide/FuncProgramming/lambdasyntax.html new file mode 100644 index 000000000..f883c1ef7 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/lambdasyntax.html @@ -0,0 +1,67 @@ + + + + + + + + + + + + + +

-

+

- :

+
_ _ -> +
+

+
_ _ -> +
+

+
function + _ _ ->
+

+
procedure + _ ->
+

- , :

+
:
+

:

+
+

+
( + )
+

. +, , : +. " ". + .

+

+
var : + := -
+

- +function +procedure, + , ; +

+

:

+
x -> x+1
() -> 1
(x,y) -> x*y
(x,y: + integer) -> x*y
(x,y: integer): integer -> x*y
(x: integer; y: + integer) -> x*y
(x,y: integer) -> begin Result := x*y + end
(x,y: integer) -> begin Result := + x*y end
function -> 1
+ function
(x,y) -> x*y
function (x,y: integer) + -> x*y
function (x,y: integer): integer -> x*y
+ function (x,y: integer): integer -> begin + Result := x*y end
procedure
-> begin + write(1); write(2) end
procedure (x: + integer; s: string)-> begin write(x,s) end
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/FuncProgramming/list_extensionmethodsforsequences.html b/PABCNetHelp/LangGuide/FuncProgramming/list_extensionmethodsforsequences.html new file mode 100644 index 000000000..9aa329ab1 --- /dev/null +++ b/PABCNetHelp/LangGuide/FuncProgramming/list_extensionmethodsforsequences.html @@ -0,0 +1,420 @@ + + + + + + + + + + + + +

()

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+function IEnumerable<T>.Print(delim: string := ' '): IEnumerable<T>; +
       , delim . +
+function IEnumerable<T>.Println(delim: string := ' '): IEnumerable<T>; +
       , delim , . +
+function IEnumerable<T>.Where(predicate: Predicate<T>): IEnumerable<T>; +
       . , . +
+function IEnumerable<T>.Where(predicate: Predicate2<T,integer>): IEnumerable<T>; +
       . , . +
+function IEnumerable<T>.Select<Res>(selector: Func<T,Res>): IEnumerable<Res>; +
       selector. , . +
+function IEnumerable<T>.Select<Res>(selector: Func2<T,integer,Res>): IEnumerable<Res>; +
       selector, . , . +
+function IEnumerable<T>.SelectMany<Res>(selector: Func<T,IEnumerable<Res>>): IEnumerable<Res>; +
       . . +
+function IEnumerable<T>.SelectMany<Res>(selector: Func2<T,integer,IEnumerable<Res>>): IEnumerable<Res>; +
       . . +
+function IEnumerable<T>.SelectMany<Coll,Res>(collSelector: Func2<T,integer,IEnumerable<Coll>>; resultSelector: Func2<T,Coll,Res>): IEnumerable<Res>; +
       , . . . +
+function IEnumerable<T>.SelectMany<Coll,Res>(collSelector: Func<T,IEnumerable<Coll>>; resultSelector: Func2<T,Coll,Res>): IEnumerable<Res>; +
       , . . +
+function IEnumerable<T>.Take(count: integer): IEnumerable<T>; +
       count . +
+function IEnumerable<T>.TakeWhile(predicate: Predicate<T>): IEnumerable<T>; +
       , , . +
+function IEnumerable<T>.TakeWhile(predicate: Predicate2<T,integer>): IEnumerable<T>; +
       , , ( ). +
+function IEnumerable<T>.Skip(count: integer): IEnumerable<T>; +
       count . +
+function IEnumerable<T>.SkipWhile(predicate: Predicate<T>): IEnumerable<T>; +
       , , . +
+function IEnumerable<T>.SkipWhile(predicate: Predicate2<T,integer>): IEnumerable<T>; +
       , , ( ). +
+function IEnumerable<T>.Sorted(): IEnumerable<T>; +
       . +
+function IEnumerable<T>.OrderBy<Key>(keySelector: Func<T,Key>): System.Linq.IOrderedEnumerable<T>; +
       . keySelector - , . +
+function IEnumerable<T>.OrderBy<Key>(keySelector: System.Func<T,Key>; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
       comparer . keySelector - , . +
+function IEnumerable<T>.OrderByDescending<Key>(keySelector: System.Func<T,Key>): System.Linq.IOrderedEnumerable<T>; +
       . keySelector - , . +
+function IEnumerable<T>.OrderByDescending<Key>(keySelector: System.Func<T,Key>; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
       comparer . keySelector - , . +
+function System.Linq.IOrderedEnumerable<T>.ThenBy<Key>(keySelector: Func<T,Key>): System.Linq.IOrderedEnumerable<T>; +
       . keySelector - , . +
+function System.Linq.IOrderedEnumerable<T>.ThenBy<Key>(keySelector: Func<T,Key>; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
       comparer . keySelector - , . +
+function System.Linq.IOrderedEnumerable<T>.ThenByDescending<Key>(keySelector: Func<T,Key>): System.Linq.IOrderedEnumerable<T>; +
       . keySelector - , . +
+function System.Linq.IOrderedEnumerable<T>.ThenByDescending<Key>(keySelector: Func<T,Key>; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
       comparer . keySelector - , . +
+function IEnumerable<T>.Concat(second: IEnumerable<T>): IEnumerable<T>; +
       , . +
+function IEnumerable<TFirst>.Zip<TSecond,Res>(second: IEnumerable<TSecond>; resultSelector: Func2<TFirst,TSecond,Res>): IEnumerable<Res>; +
       , , . +
+function IEnumerable<T>.Distinct(): IEnumerable<T>; +
       . +
+function IEnumerable<T>.Distinct(comparer: System.Collections.Generic.IEqualityComparer<T>): IEnumerable<T>; +
       , comparer. +
+function IEnumerable<T>.Union(second: IEnumerable<T>): IEnumerable<T>; +
       , . +
+function IEnumerable<T>.Union(second: IEnumerable<T>; comparer: System.Collections.Generic.IEqualityComparer<T>): IEnumerable<T>; +
       , , . +
+function IEnumerable<T>.Intersect(second: IEnumerable<T>): IEnumerable<T>; +
       , . +
+function IEnumerable<T>.Intersect(second: IEnumerable<T>; comparer: System.Collections.Generic.IEqualityComparer<T>): IEnumerable<T>; +
       , , . +
+function IEnumerable<T>.Except(second: IEnumerable<T>): IEnumerable<T>; +
       , . +
+function IEnumerable<T>.Except(second: IEnumerable<T>; comparer: System.Collections.Generic.IEqualityComparer<T>): IEnumerable<T>; +
       , , . +
+function IEnumerable<T>.Reverse(): IEnumerable<T>; +
       . +
+function IEnumerable<T>.SequenceEqual(second: IEnumerable<T>): boolean; +
      , . +
+function IEnumerable<T>.SequenceEqual(second: IEnumerable<T>; comparer: System.Collections.Generic.IEqualityComparer<T>): boolean; +
      , , . +
+function IEnumerable<T>.First(): T; +
       . +
+function IEnumerable<T>.First(predicate: Predicate<T>): T; +
       , . +
+function IEnumerable<T>.FirstOrDefault(): T; +
       , . +
+function IEnumerable<T>.FirstOrDefault(predicate: Predicate<T>): T; +
       , . +
+function IEnumerable<T>.Last(): T; +
       . +
+function IEnumerable<T>.Last(predicate: Predicate<T>): T; +
       , . +
+function IEnumerable<T>.LastOrDefault(): T; +
       , . +
+function IEnumerable<T>.LastOrDefault(predicate: Predicate<T>): T; +
       , , , . +
+function IEnumerable<T>.Single(): T; +
       , 1. +
+function IEnumerable<T>.Single(predicate: Predicate<T>): T; +
       , , , . +
+function IEnumerable<T>.SingleOrDefault(): T; +
       , ; , . +
+function IEnumerable<T>.SingleOrDefault(predicate: Predicate<T>): T; +
       , , , ; , . +
+function IEnumerable<T>.DefaultIfEmpty(): IEnumerable<T>; +
       , , . +
+function IEnumerable<T>.DefaultIfEmpty(defaultValue: T): IEnumerable<T>; +
       , , . +
+function IEnumerable<T>.ElementAt(index: integer): T; +
       . +
+function IEnumerable<T>.ElementAtOrDefault(index: integer): T; +
       , . +
+function IEnumerable<T>.Any(): boolean; +
      , - . +
+function IEnumerable<T>.Any(predicate: Predicate<T>): boolean; +
      , - . +
+function IEnumerable<T>.All(predicate: Predicate<T>): boolean; +
      , . +
+function IEnumerable<T>.Count(): integer; +
       . +
+function IEnumerable<T>.Count(predicate: Predicate<T>): integer; +
       , , . +
+function IEnumerable<T>.LongCount(): int64; +
       Int64, . +
+function IEnumerable<T>.LongCount(predicate: Predicate<T>): int64; +
       Int64, , . +
+function IEnumerable<T>.Contains(value: T): boolean; +
      , , . +
+function IEnumerable<T>.Contains(value: T; comparer: System.Collections.Generic.IEqualityComparer<T>): boolean; +
      , , . +
+function IEnumerable<T>.Aggregate(func: Func2<T,T,T>): T; +
       . . +
+function IEnumerable<T>.Aggregate<Accum>(seed: T; func: Func2<Accum,T,Accum>): T; +
       . . . +
+function IEnumerable<T>.Aggregate<Accum,Res>(seed: T; func: Func2<Accum,T,Accum>; resultSelector: Func<Accum,Res>): T; +
       . , . . +
+function IEnumerable<>.Sum(): ; +
       . +
+function IEnumerable<T>.Sum(selector: Func<T,>): ; +
       , . +
+function IEnumerable<>.Min(): ; +
       . +
+function IEnumerable<T>.Min(selector: Func<T,>): ; +
       . +
+function IEnumerable<>.Max(): ; +
       . +
+function IEnumerable<T>.Max(selector: Func<T,>): ; +
       . +
+function IEnumerable<>.Average(): real; +
       . +
+function IEnumerable<T>.Average(selector: Func<T,>): real; +
       , . +
+function IEnumerable<TOuter>.Join<TInner,Key,Res>(inner: IEnumerable<TInner>; outerKeySelector: Func<TOuter,Key>; innerKeySelector: Func<TInner,Key>; resultSelector: Func2<TOuter,TInner,Res>): IEnumerable<Res>; +
       . resultSelector . +
+function IEnumerable<TOuter>.Join<TInner,Key,Res>(inner: IEnumerable<TInner>; outerKeySelector: Func<TOuter,Key>; innerKeySelector: Func<TInner,Key>; resultSelector: Func2<TOuter,TInner,Res>; comparer: System.Collections.Generic.IEqualityComparer<Key>): IEnumerable<Res>; +
       . resultSelector . comparer. +
+function IEnumerable<TOuter>.GroupJoin<TInner,Key,Res>(inner: IEnumerable<TInner>; outerKeySelector: Func<TOuter,Key>; innerKeySelector: Func<TInner,Key>; resultSelector: Func2<TOuter,IEnumerable<TInner>,Res>): IEnumerable<Res>; +
       . resultSelector . +
+function IEnumerable<TOuter>.GroupJoin<TInner,Key,Res>(inner: IEnumerable<TInner>; outerKeySelector: Func<TOuter,Key>; innerKeySelector: Func<TInner,Key>; resultSelector: Func2<TOuter,IEnumerable<TInner>,Res>; comparer: System.Collections.Generic.IEqualityComparer<Key>): IEnumerable<Res>; +
       . . resultSelector . +
+function IEnumerable<T>.GroupBy<Key>(keySelector: Func<T,Key>): IEnumerable<IGrouping<Key,T>>; +
       ; . +
+function IEnumerable<T>.GroupBy<Key>(keySelector: Func<T,Key>; comparer: System.Collections.Generic.IEqualityComparer<Key>): IEnumerable<IGrouping<Key,T>>; +
       , ; . +
+function IEnumerable<T>.GroupBy<Key,Element>(keySelector: Func<T,Key>; elementSelector: Func<T,Element>): IEnumerable<IGrouping<Key,T>>; +
       . ; . +
+function IEnumerable<T>.GroupBy<Key,Element>(keySelector: Func<T,Key>; elementSelector: Func<T,Element>; comparer: System.Collections.Generic.IEqualityComparer<Key>): IEnumerable<IGrouping<Key,Element>>; +
       . , . +
+function IEnumerable<T>.GroupBy<Key,Res>(keySelector: Func<T,Key>; resultSelector: Func2<Key,IEnumerable<T>,Res>): IEnumerable<Res>; +
       . +
+function IEnumerable<T>.GroupBy<Key,Element,Res>(keySelector: Func<T,Key>; elementSelector: Func<T,Element>; resultSelector: Func2<Key,IEnumerable<Element>,Res>): IEnumerable<Res>; +
       . . +
+function IEnumerable<T>.GroupBy<Key,Res>(keySelector: Func<T,Key>; resultSelector: Func2<Key,IEnumerable<T>,Res>; comparer: System.Collections.Generic.IEqualityComparer<Key>): IEnumerable<Res>; +
       . . +
+function IEnumerable<T>.GroupBy<Key,Element,Res>(keySelector: Func<T,Key>; elementSelector: System.Func<T,Element>; resultSelector: Func2<Key,IEnumerable<Element>,Res>; comparer: System.Collections.Generic.IEqualityComparer<Key>): IEnumerable<Res>; +
       . , . +
+function IEnumerable<T>.AsEnumerable(): IEnumerable<T>; +
       , IEnumerable. +
+function IEnumerable<T>.ToArray(): array of T; +
       . +
+function IEnumerable<T>.ToList(): List<T>; +
       List . +
+function IEnumerable<T>.ToDictionary<Key>(keySelector: Func<T,Key>): Dictionary<Key,T>; +
       Dictionary . +
+function IEnumerable<T>.ToDictionary<Key>(keySelector: Func<T,Key>; comparer: System.Collections.Generic.IEqualityComparer<Key>): Dictionary<Key,T>; +
       Dictionary . +
+function IEnumerable<T>.ToDictionary<Key,Element>(keySelector: Func<T,Key>; elementSelector: Func<T,Element>): Dictionary<Key,Element>; +
       Dictionary . +
+function IEnumerable<T>.ToDictionary<Key,Element>(keySelector: Func<T,Key>; elementSelector: Func<T,Element>; comparer: System.Collections.Generic.IEqualityComparer<Key>): Dictionary<Key,Element>; +
       Dictionary . +
+function IEnumerable<T>.ToLookup<Key>(keySelector: Func<T,Key>): System.Linq.ILookup<Key,T>; +
       System.Linq.Lookup . +
+function IEnumerable<T>.ToLookup<Key>(keySelector: Func<T,Key>; comparer: System.Collections.Generic.IEqualityComparer<Key>): System.Linq.ILookup<Key,T>; +
       System.Linq.Lookup . +
+function IEnumerable<T>.ToLookup<Key,Element>(keySelector: Func<T,Key>; elementSelector: Func<T,Element>): System.Linq.ILookup<Key,Element>; +
       System.Linq.Lookup . +
+function IEnumerable<T>.ToLookup<Key,Element>(keySelector: Func<T,Key>; elementSelector: Func<T,Element>; comparer: System.Collections.Generic.IEqualityComparer<Key>): System.Linq.ILookup<Key,Element>; +
       System.Linq.Lookup . +
+function System.Collections.IEnumerable.OfType<Res>(): IEnumerable<Res>; +
       System.Collections.IEnumerable . . . +
+function System.Collections.IEnumerable.Cast<Res>(): IEnumerable<Res>; +
       System.Collections.IEnumerable . +
+function IEnumerable<T>.ToStr(delim: string := ' '): string; +
       , delim . +
+ + + + diff --git a/PABCNetHelp/LangGuide/Generics/generic_constraints.html b/PABCNetHelp/LangGuide/Generics/generic_constraints.html new file mode 100644 index 000000000..88104cb0d --- /dev/null +++ b/PABCNetHelp/LangGuide/Generics/generic_constraints.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + +

+

, + , + : + (, + NET +!).

+

, :

+
+

function Eq<T>(a,b: T): boolean;
+ begin
+  Result := a = b;
+ end;

+
+

, + , , + default(T) - + T (nil + ):

+
+

procedure Def<T>(var a: T);
+ begin
+  a := default(T);
+ end;

+
+

, +

+
+

function Sum<T>(a,b: T): T;
+ begin
+  Result := a + b;
+ end;

+
+

( + ). .NET + C++, + , + .

+

+, , + + , where + :

+
+

type
+   MyPair<T> = class
+
    where T: System.ICloneable;
+   private
+   
x,y: T;
+  public
+    constructor
(x,y: T);
+    begin
+      Self.x := x;
+      Self.y := y;
+    end;
+     function Clone: MyPair;
+     begin
+       Result := new MyPair<T>(x.Clone,y.Clone);
+     end;
+   end;

+
+

where + :
+ 1 : class + record +-.
+ 2 : + .
+ 3 : +constructor, , + .

+

+, , .

+

- +where, +where + .

+

. + . +IComparable<T>.

+
+

function MinElem<T>(a: array of T): T;
where T: IComparable<T>;
+ begin
var min := a[0];
for var i := 1 to a.High do
+    if a[i].CompareTo(min)<0 then
+      min := a[i];
+  Result := min;
+ end;

+
+

, a[i]<min, + .

+ + + diff --git a/PABCNetHelp/LangGuide/Generics/generic_sub.html b/PABCNetHelp/LangGuide/Generics/generic_sub.html new file mode 100644 index 000000000..fcd641f5e --- /dev/null +++ b/PABCNetHelp/LangGuide/Generics/generic_sub.html @@ -0,0 +1,104 @@ + + + + + + + + + + + +

:

+

(generic) , . + +. . +

+

,   + :

+
+

function FindFirstInArray<T>(a: array of T; + val: T): integer;
+ begin
Result := -1;
for var i:=0 to a.Length-1 + do
+    if a[i]=val then
+    begin
+      Result := i;
+       exit;
+     end;
+ end;

+

var x: array of + string;

+

begin
+   SetLength(x,4);
+   x[0] := '';
+   x[1] := '';
+   x[2] := '';
+   x[3] := '';
+   writeln(FindFirstInArray(x,''));
+ end.

+
+

- , + + . + : T=string.

+

, +. ,

+
+

...
+ var
x: array of real;

+

begin
+  SetLength(x,3);
+  x[0] := 1;
+  x[1] := 2.71;
+  x[2] := 3.14;
+  writeln(FindFirstInArray(x,1));
+ end.

+
+

. , +array of real, - +integer, T + . + real:

+
+

FindFirstInArray(x,1.0)

+
+

, + :

+
+

FindFirstInArray&<real>(x,1)

+
+

& , + < +"".

+

, , + . :

+
+

type
+  Pair<T,Q> = class
+    first: T;
+    second: Q;
+     function ChangeSecond<S>(newval: S): Pair<T, S>;
+   end;

+

function Pair<T,Q>.ChangeSecond<S>(newval: S): Pair<T,S>;
+ begin
+  result := new Pair<T,S>;
+  result.first := first;
+  result.second := newval;
+ end;

+

var
+  x: Pair<integer,real>;
+  y: Pair<integer,string>;
+ begin

+  x := new Pair<integer,real>;
+  x.first := 3;
+  y := x.ChangeSecond('abc');
+  writeln(y.first, y.second);
+ end.

+
+

3abc.

+ + + diff --git a/PABCNetHelp/LangGuide/Generics/generic_sub_params.html b/PABCNetHelp/LangGuide/Generics/generic_sub_params.html new file mode 100644 index 000000000..5ac556c61 --- /dev/null +++ b/PABCNetHelp/LangGuide/Generics/generic_sub_params.html @@ -0,0 +1,42 @@ + + + + + + + + + + + +

+

+ . + +

+

, System.Array + + . , System.Array.Find + :

+
+

System.Array.FindAll<T>(a: array of T; pred: + Predicate<T>): array of T;

+
+

a + T, +pred.

+

:

+
+

function f(x: integer): boolean;
+ begin
+  Result := ;
+ end;

+

var a := Seq(1,3,6,5,8);
+ var b := System.Array.FindAll(a,x -> x mod 2 = 0);

+
+

b, + a + .

+ + + diff --git a/PABCNetHelp/LangGuide/Generics/index_generics.html b/PABCNetHelp/LangGuide/Generics/index_generics.html new file mode 100644 index 000000000..7df214091 --- /dev/null +++ b/PABCNetHelp/LangGuide/Generics/index_generics.html @@ -0,0 +1,81 @@ + + + + + + + + + + + +

:

+

(generic) + , , +. (, )  (, +) + . + . , Stack<T> - + T, + T, +Stack<integer> - +integer.

+

.

+

+:

+
+

type
+  Node<T> = class
+   
data: T;
+    next: Node<T>;
public
+    constructor Create(d: T; nxt: Node<T>);
+    begin
+      data := d;
+      next := nxt;
+    end;
end;
+  Stack<T> = class
+   
tp: Node<T>;
public
+    procedure
Push(x: T);
+    begin
+      tp := new Node<T>(x,tp);
+    end;
+    function Pop: T;
+    begin
+      Result := tp.data;
+      tp := tp.next;
+    end;
+    function Top: T;
+    begin
+      Result := tp.data;
+    end;
+    function IsEmpty: boolean;
+    begin
+      Result := tp = nil;
+    end;
end;

+
+

:

+
+

var
+  si: Stack<integer>;
+  sr: Stack<real>;
+ begin
+  si := new Stack<integer>; 
+  sr := new Stack<real>;
for var i := 1 to 10 do
+    si.Push(Random(100));
while not si.IsEmpty do
+    sr.Push(si.Pop);
while not sr.IsEmpty do
+    write(sr.Pop,' ');
+ end.

+
+

- +.

+

 

+ + + diff --git a/PABCNetHelp/LangGuide/Interfaces/indexinterf.html b/PABCNetHelp/LangGuide/Interfaces/indexinterf.html new file mode 100644 index 000000000..b8ab587a3 --- /dev/null +++ b/PABCNetHelp/LangGuide/Interfaces/indexinterf.html @@ -0,0 +1,115 @@ + + + + + + + + + + + + +

:

+

- + , , + . type + :

+
+

= interface
  +
end;

+
+

, + +read write.

+

:

+
+

type
  IShape = interface
    + procedure Draw;
    property X: integer + read;
    property Y: integer read;
  + end;
+  ICloneable = interface
    function + Clone: Object;
  end;

+
+

.

+

, + +public-. + , +. . + +class +( , ).

+

:

+
+

type
  Point = class(IShape,ICloneable)
private
+    xx,yy: integer;
public
+    constructor
Create(x,y: integer);
+    begin
+      xx := x; yy := y;
+    end
    procedure + Draw; begin end;
    property X: integer + read xx;
    property Y: integer read yy;
    + function Clone: Object;
+    begin
+      Result := new Point(xx,yy);
+    end;
+    procedure Print;
+    begin
+      write(xx,' ',yy);
+    end;
  end;

+
+

+: 

+
+

type
+   IPosition = + interface
    + property X: integer read;
    property + Y: integer read;
  end;
+   IDrawable = + interface
    procedure Draw;
  end;
+   IShape = + interface(IPosition,IDrawable)
  end;

+
+

- + . , , + : + , , +, + :

+
+

var ip: IShape := new Point(20,30);
+ ip.Draw;
+ Point(ip).Print;

+
+

, , + virtual + override. +, ip.Draw +Draw Point. +, . + , , , + virtual:

+

type
  Point = class(IShape,ICloneable)
+    ...
+    + function Clone: Object; virtual;
+    begin
+      Result := new Point(xx,yy);
+    end;
end;

+

, , + is as:

+
+

if ip is Point then
+  ...
+ var p: Point := ip as Point;
+ if p<>nil then
+  writeln(' ');

+
+ + + diff --git a/PABCNetHelp/LangGuide/Interfaces/manyinterf.html b/PABCNetHelp/LangGuide/Interfaces/manyinterf.html new file mode 100644 index 000000000..363476142 --- /dev/null +++ b/PABCNetHelp/LangGuide/Interfaces/manyinterf.html @@ -0,0 +1,48 @@ + + + + + + + + + + + +

+

+. + :

+
+

type
+  IShape = interface
    + procedure Draw;
    property X: integer read;
    + property Y: integer read;
  + end;
+   IBrush = interface
    + procedure Draw;
    property + Size: integer read;
  + end;
+   Brush = class(IShape,IBrush)
+    // Draw +
end;

+
+

, +.NET + , + . +PascalABC.NET , +, , .NET, +. , integer + IComparable:

+
+

var i: integer := 1;
+ var res : integer := IComparable(i).CompareTo(2);
+ // i.CompareTo(2) + -

+
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/MemoryManagement/index_memory.html b/PABCNetHelp/LangGuide/MemoryManagement/index_memory.html new file mode 100644 index 000000000..5cf75d124 --- /dev/null +++ b/PABCNetHelp/LangGuide/MemoryManagement/index_memory.html @@ -0,0 +1,44 @@ + + + + + + + + + + + + +

+

.NET + . + , + . , + nil.

+

+, , +. . + , + . .

+

,

+
+

 type
+  Person = class
+    ...
+  end;
+ var p: Person := new Person('',20);
+ ...
+ p := nil;

+
+

, p, + nil + .

+

, , +New, , + Dispose. + PascalABC.NET + .

+ + + diff --git a/PABCNetHelp/LangGuide/Modules/cyclemodules.html b/PABCNetHelp/LangGuide/Modules/cyclemodules.html new file mode 100644 index 000000000..d95c13c95 --- /dev/null +++ b/PABCNetHelp/LangGuide/Modules/cyclemodules.html @@ -0,0 +1,51 @@ + + + + + + + + + + + + +

+

+ . , + +:

+
+

unit A;
+ interface

+ uses
B;

+ implementation

+ end
.
+
+ unit
B;

+ interface

+ uses
A;

+ implementation

+ end
.

+
+

, + , .

+

, , + - , - , + :

+
+

unit A;
+ interface

+
implementation
+ uses
B;

+
end.
+
+ unit
B;

+ interface

+ uses
A;

+ implementation

+ end
.

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Modules/doccomments.html b/PABCNetHelp/LangGuide/Modules/doccomments.html new file mode 100644 index 000000000..f81954aea --- /dev/null +++ b/PABCNetHelp/LangGuide/Modules/doccomments.html @@ -0,0 +1,55 @@ + + + + + + + + + + + + + +

+

, , , , , + . + + , + , . + Intellisense.

+

, + , ///. +:

+
+

const
  /// Pi
  Pi = + 3.14;

type
  /// TTT -
  + TTT = integer;
  /// XXX
  + XXX = class
  end;

/// + p
procedure p(a : + integer);
begin
end;

+ var
  /// t1
  + t1: TTT;

+
+

, + /// . + +///-, + . :

+
+

///- Exclude(var s : set of T; el : T)
/// el + s
procedure Exclude(var s: + TypedSet; el: object);

+
+

+///--, . + , .

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Modules/indexmodule.html b/PABCNetHelp/LangGuide/Modules/indexmodule.html new file mode 100644 index 000000000..78b63561a --- /dev/null +++ b/PABCNetHelp/LangGuide/Modules/indexmodule.html @@ -0,0 +1,105 @@ + + + + + + + + + + + + + + + + + + +

+

+ . , , , +, . + ( ), + ( .pas) uses + . (.pas) + (.pcu) +, , Lib + PascalABC.NET.

+

:

+
+

unit ;

+

interface

+

+

+

implementation

+

+

+

initialization

+

+

finalization

+

+

end.

+
+

+ .

+

. + .

+

+ uses + .NET. +uses .

+

+ +, ( + uses). +, , , , , . + , +.

+

, + , . , + , + .

+

+ , ;. + , + +- . + + . , +.

+

+

+
+

begin

+ end.

+
+

:

+
+

unit Lib;

+

interface

+

uses GraphABC;

+

const Dim = 5;
+ var Colors: array [1..Dim] of integer;

+

function RandomColor: integer;
+ procedure FillByRandomColor;

+

implementation

+

function RandomColor: integer;
+ begin
+  Result := RGB(Random(255),Random(255),Random(255));
+ end;
+ procedure FillByRandomColor;
+ begin
for i: integer := 1 to Dim do
+    Colors[i] := RandomColor;
+ end;

+

initialization
+  FillByRandomColor;
+ end.

+
+

+ .

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Modules/libraries.html b/PABCNetHelp/LangGuide/Modules/libraries.html new file mode 100644 index 000000000..2150e9d8a --- /dev/null +++ b/PABCNetHelp/LangGuide/Modules/libraries.html @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + +

dll

+

dll (dynamically linked libraries):

+
    +
  • +
  • +
  • +
+

.dll (), + ( ). + .

+

+, , .

+

+
    +
  1. .exe + - , , + , () . + , + , .
  2. +
  3. .dll + .
  4. +
  5. .dll + .
  6. +
  7. .dll , + , . , + PascalABC.NET , + C# . , + .
  8. +
+

+

, +:

+
+

library ;

+

interface

+

+

+

implementation

+

+

+

end.

+
+

pas-, +.

+

- +, + ( ).

+

.dll-, + .

+

+

+ {$reference +}. +:

+
+

{$reference ABC.dll}
{$reference ABC1.dll}
+
begin
  writeln(a.GetType);
end.

+
+

.

+

ABC ABC1 :

+
+

library ABC;

+

var a: integer;

+

end.

+
+

+
+

library ABC1;

+

var a: real;

+

end.

+
+

+

, , + uses , - + .

+

a + integer.

+

+ :

+
+

{$reference ABC.dll}
{$reference ABC1.dll}
+
begin
  writeln(ABC1.a.GetType);
+ end.

+
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/Modules/simplemodule.html b/PABCNetHelp/LangGuide/Modules/simplemodule.html new file mode 100644 index 000000000..71ece6678 --- /dev/null +++ b/PABCNetHelp/LangGuide/Modules/simplemodule.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + +

+

+ :

+
+

unit ;

+

  +

+

end.

+
+

+
+

unit ;

+

+

begin

+

+

end.

+
+

, , +, , , . . + - + , , .

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Modules/uses.html b/PABCNetHelp/LangGuide/Modules/uses.html new file mode 100644 index 000000000..37f17c29d --- /dev/null +++ b/PABCNetHelp/LangGuide/Modules/uses.html @@ -0,0 +1,84 @@ + + + + + + + + + + + + +

uses

+

uses +uses, +:

+
+

uses ;

+
+

+ PascalABC.NET, + .NET. :

+
+

uses System, System.Collections.Generic, MyUnit;

+
+

MyUnit - +PascalABC.NET, + .pcu-, +System System.Collections.Generic +- .NET.

+

, +uses, + PascalABC.NET + .NET. + .NET , + , .NET + - + + {$reference }, + - dll-, + .NET-. + , , + , +uses. +, .NET +$reference, , + , +uses. :

+
+

begin
+  System.Console.WriteLine('PascalABC.NET');
+ end.

+
+

uses + PABCSystem, +, , . uses +, PABCSystem . , +$reference System.dll, System.Core.dll +mscorlib.dll, .NET-.

+

+ , , + uses + . , + . +, . + ,

+
+

.

+
+

+
+

NET.

+
+

+ program.

+ + + diff --git a/PABCNetHelp/LangGuide/OpenMP/indexopenmp.html b/PABCNetHelp/LangGuide/OpenMP/indexopenmp.html new file mode 100644 index 000000000..c981d47b5 --- /dev/null +++ b/PABCNetHelp/LangGuide/OpenMP/indexopenmp.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + +

OpenMP:

+

OpenMP + + (, + ). OpenMP + : + , .

+

OpenMP , + , + .

+

PascalABC.NET OpenMP:

+
    +
  • ( + parallel for parallel sections) +
  • +
  • ( critical) +
  • +
+

:

+

{$omp directive-name [[[,] ]...]}  + +

+

$omp , +OpenMP, directive-name , parallel, + . , + .

+

OpenMP + Samples/OMPSamples

+ +

.

+
+

parallel for

+

parallel for

+

parallel sections

+

critical

+
+ + + diff --git a/PABCNetHelp/LangGuide/OpenMP/parallelfor.html b/PABCNetHelp/LangGuide/OpenMP/parallelfor.html new file mode 100644 index 000000000..161b765e1 --- /dev/null +++ b/PABCNetHelp/LangGuide/OpenMP/parallelfor.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + + + +

parallel for

+ + +

parallel for + .

+
+

{$omp parallel for}
+
+ for var i: integer:=1 to 10 do
+  

+
+

+ . , , + , , +, , + , .

+

, , , +, , + . , +, , +.

+

private , , +. :

+
+

{$omp parallel for private( )}

+
+

.

+
+

var a,b: integer;
+ {$omp parallel for private(a, b)}
+
+ for var i: integer:=1 to 10 do
+   a := ...

+
+

a b , + .

+

: + .

+

. + + , + , + .

+
+

{$omp parallel for}
+
+ for var i:=1 to 2 do
+   a[i] := a[i+1];

+
+

, + . + , + .

+
+

var a:integer;
+ {$omp parallel for}
+
+ for var i:=1 to 10 do
+ begin
+   a := i;
+   ... := a;  // a
+ end;

+
+

a 1 +10.

+

, + . + , + .

+

+

- +. , + .

+
+

uses Arrays;
+
+ procedure ParallelMult(a,b,c: array [,] of real; n: + integer);
+ begin
+   {$omp parallel for }
+
  for var i:=0 to + n-1 do
+   for var j:=0 to n-1 do
+   begin
+     c[i,j]:=0;
+     for var l:=0 to + n-1 do
+       c[i,j]:=c[i,j]+a[i,l]*b[l,j];
+   end;
+ end;
+
+ procedure Mult(a,b,c: array [,] of real; n: integer);
+ begin
+   for var i:=0 to + n-1 do
+   for var j:=0 to n-1 do
+   begin
+     c[i,j]:=0;
+     for var l:=0 to + n-1 do
+       c[i,j]:=c[i,j]+a[i,l]*b[l,j];
+   end;
+ end;
+
+ const n = 400;
+
+ begin
+   var a := + Arrays.CreateRandomRealMatrix(n,n);
+   var b := + Arrays.CreateRandomRealMatrix(n,n);
+   var c := new real[n,n];
+   ParallelMult(a,b,c,n);
+   writeln(' : + ',Milliseconds,' ');
+   var d := Milliseconds;
+   Mult(a,b,c,n);
+   writeln(' : + ',Milliseconds-d,' ');
+ end.

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/OpenMP/reduction.html b/PABCNetHelp/LangGuide/OpenMP/reduction.html new file mode 100644 index 000000000..d8ccee42b --- /dev/null +++ b/PABCNetHelp/LangGuide/OpenMP/reduction.html @@ -0,0 +1,103 @@ + + + + + + + + + + + + + +

parallel for

+

, + , + . + , , . + :

+
+

var a: integer:=0;
+ {$omp parallel for}
+
for var i:integer:=1 to 100 do
+   a := a+1;

+
+

, + a, + a. , +, . +, .

+

reduction :

+
+

{$omp parallel for reduction( : )}

+
+

, , + . + , + + .

+
+

var a: integer := 1;
+ {$omp parallel for reduction(+:a)}
+
for var i: integer:=1 to 2 do
+   a := a+1;

+
+

a , + + , + a 1. + (1) , + a 3, +.

+

, + :

+

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
reduction
+0
*1
-0
and ()~0 ( )
or ()0
xor ()0
and ()true
or ()false
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/OpenMP/sections.html b/PABCNetHelp/LangGuide/OpenMP/sections.html new file mode 100644 index 000000000..e9e492c53 --- /dev/null +++ b/PABCNetHelp/LangGuide/OpenMP/sections.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + +

parallel sections

+

parallel sections + , .

+
+

{$omp parallel sections}
+
+ begin
+   1;
+   2;
+
  ...;
+ end;

+
+

begin ... end, + .

+
+

{$omp parallel sections}
+
+ begin
+   1;
+   2;
+
  begin
+     3;
+     4;
+     5;
+
  end;
+ end;

+
+

, 1, +2 begin ... end, 3-5.

+

, , , +, , , + , . , + , , +.

+

, + , + .

+ + + diff --git a/PABCNetHelp/LangGuide/OpenMP/sync.html b/PABCNetHelp/LangGuide/OpenMP/sync.html new file mode 100644 index 000000000..122930279 --- /dev/null +++ b/PABCNetHelp/LangGuide/OpenMP/sync.html @@ -0,0 +1,66 @@ + + + + + + + + + + + + +

critical

+

critical +.

+
+

{$omp critical }
+
;

+
+

, + .

+

+.   , + , , + .

+

, + .

+
+

var a:integer:=0;
+ {$omp parallel for}
+
for var i:integer:=1 to 100 do
+   {$omp critical}
+   a:=a+1;

+
+

. +a:=a+1 . + + . +, .

+

+ .

+
+

var a:integer := 0;
+ {$omp parallel sections}
+
begin
+   {$omp critical}
+
  a:=1;
+   {$omp critical}
+
  a:=a+1;
+ end;

+
+

a , . + , a , +.

+

. +, , A, + B. , + B, A. + : +. , + . +, . + .

+ + + diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/IfOperation.html b/PABCNetHelp/LangGuide/Operations_Expressions/IfOperation.html new file mode 100644 index 000000000..8e296008b --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/IfOperation.html @@ -0,0 +1,28 @@ + + + + + + + + +

+

:

+
+ ? 1 : 2 +
+

, 1, + 2.

+

:

+
+

var min := a < b ? a : b;

+
+

, + . , a b + :

+
+

var min: real;
if a<b then
  + min := a
else min := b;

+
+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/Slice.html b/PABCNetHelp/LangGuide/Operations_Expressions/Slice.html new file mode 100644 index 000000000..486276b03 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/Slice.html @@ -0,0 +1,102 @@ + + + + + + + + + + +

+

- , List<T> , + .

+

:

+
+ a[from:to] +
+

+
+a[from:to:step] +
+

+
+a?[from:to] +
+

+
+a?[from:to:step] +
+

[from, +to) + step. [from, +to) , +from +, to - . + from, +to, step + .

+

step , , +step=1, .. + .

+

: + , - List<T> +List<T>.

+

. from , + . +to 1, .. + [-1..a.Count] List<T> + [0..s.Length+1] , +.

+

+step=0, .

+

+a? + +. . + . + , +.

+

:

+
+

var a := Arr(0,1,2,3,4,5,6);
Println(a[2:5]); // [2,3,4]
+ Println(a[2:a.Length]); // [2,3,4,5,6]
Println(a[2:1000]); // !
Println(a?[2:1000]); + // [2,3,4,5,6]
Println(a[2:7:2]); // [2,4,6]
+ Println(a[2:0]); //
var s := '0123456';
+ Println(s[2:5]); // 123
Println(s[0:2]); // !
Println(s?[0:2]); + // 12
Println(s?[-2::2]); // 135
Println(s[2:s.Length]); // 12345

+
+

step . :

+
+

var a := Arr(0,1,2,3,4,5,6);
Println(a[5:2:-1]); // + [5,4,3]
Println(a[2:5:-1]); //
+ Println(a[a.Length-1:-1:-2]); // [6,4,2,0]

+
+

from +to , + . +step>0, from + , to + + 1. +step<0, +from +, to - + - 1.

+

:

+
+

var s := '0123456';
Println(s[2:]); // 23456
+ Println(s[:4]); // 012
Println(s[::-1]); // 6543210

+
+

Slice, +, List<T>, . , + - : a.Slice(from,step,count).

+


+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/addrop.html b/PABCNetHelp/LangGuide/Operations_Expressions/addrop.html new file mode 100644 index 000000000..3a2339f29 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/addrop.html @@ -0,0 +1,17 @@ + + + + + + +

@

+

@ + . + . :

+
+

var
+  r: real;
+  pr: ^real := @r;
 

+
+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/arithmop.html b/PABCNetHelp/LangGuide/Operations_Expressions/arithmop.html new file mode 100644 index 000000000..a8471ad5f --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/arithmop.html @@ -0,0 +1,219 @@ + + + + + + + + +

+

++, -, +*, / , +div mod ++ - . +x op y, +op - ++- *, + :

+

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 shortintbytesmallintwordintegerlongwordint64uint64BigIntegersinglereal
shortintintegerintegerintegerintegerintegerint64int64uint64BigIntegersinglereal
byteintegerintegerintegerintegerintegerlongwordint64uint64BigIntegersinglereal
smallintintegerintegerintegerintegerintegerint64int64uint64BigIntegersinglereal
wordintegerintegerintegerintegerintegerlongwordint64uint64BigIntegersinglereal
integerintegerintegerintegerintegerintegerint64int64uint64BigIntegersinglereal
longwordint64longwordint64longwordint64longworduint64uint64BigIntegersinglereal
int64int64int64int64int64int64uint64int64uint64BigIntegersinglereal
uint64uint64uint64uint64uint64uint64uint64uint64uint64BigIntegersinglereal
BigIntegerBigIntegerBigIntegerBigIntegerBigIntegerBigIntegerBigIntegerBigIntegerBigIntegerBigInteger--
singlesinglesinglesinglesinglesinglesinglesinglesingle-singlereal
realrealrealrealrealrealrealrealreal-realreal
+

, - , +, .

+

uint64 + uint64, + , .

+

/ : + real.

+

div mod , . + div +mod - :

+
+

x div y - + x y. + , x div y = x / y, + 0;
+ x mod y
- + x y. , + x mod y = x - (x div y) * y.

+
+

++ . + - , + integer, integer, +longword int64 +- int64, uint64 - , single real - +single real. + , + .

+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/bitop.html b/PABCNetHelp/LangGuide/Operations_Expressions/bitop.html new file mode 100644 index 000000000..fc97a5198 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/bitop.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + +

+

+ + and, or, not, +xor, shl, shr. + . + and, or, +xor , . + shl, shr + , not +- .

+

+ : (0 + False, 1 - True) + . :

+
+

00010101 and 00011001 = 00010001
+ 00010101 or 00011001 = 00011101
+ 00010101 xor 00011001 = 00001100
+ not 00010101 = 11101010

+
+

+( ).

+

+ shl +shr :

+
+

+a shl n
a shr n +

+
+

+ n - , a - .

+

+ +a shl n , + a n . + .

+

+ +a shr n , + a n .

+

+:

+
+

+3 shl 2 = 12
12 shr 2 = 3

+
+

+ 3=112, 2 112 11002=12, +12=11002 2 112=3.

+

+

+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/expressions.html b/PABCNetHelp/LangGuide/Operations_Expressions/expressions.html new file mode 100644 index 000000000..811107ed9 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/expressions.html @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + +

+

//

+ . . , , , . , , .

Pascal ABC : @, not, ^, *, /, div, mod, and, shl, shr, +, -, or, xor, +in, =>, =, >, <, <>, <= >=.

+

++ - * / , +div mod ++ - . , + , . : +/, integer, real. , b byte, +c 1..9, +b+c -b integer, 2.0+b 1/2 - real.

+ and, or xor, + not, + + boolean +boolean. , +boolean, .

+<, >, <=, >=, =, <> boolean +, , , , + . = <> pointer, , + nil. + 1.

+ and, or, not, +xor, shl, shr + . +not , . + integer. +, b +byte +b=1, b shl 10=1024, not b=254.

+

<, >, <=, >=, =, <>, + () +. . +, 'a'+'b'='ab'.

+

@

@ + .

+ ^: + p T, + p^ - T, + p.

+

+ + (), - +() * ():

+
+

var
+  s1,s2,s: set of byte;
+ begin
+
  s1:=[1..4];
+  s2:=[2..5];
+  s:=s1+s2; // s=[1..5]
+  s:=s1-s2; // s=[1]
+  s:=s1*s2; // s=[2..4]

+
+

= (), <> +(), <= () +>= ():

+
+

var
+  s1,s2,s: set of byte;
+   b: boolean;
+ begin
+
  s1:=[1..4];
+  s2:=[2..5];
+  s:=[1,2]; 
+  b:=s1=s2; // b=False
+  b:=s2<>s; // b=True
+  b:=s<=s2; // b=False
+  b:=s1>=s; // b=True

+
+

, in +, :

+
+

1 in [2..5] // False
+ 3 in [2..5] // True

+
+

+

. + , . , + , .

+

+ + + + + + + + + + + + + + + + + +
@, + not, + ^ + 1 ()
*, + /, + div, + mod, + and, + shl, + shr2
+, + -, + or, + xor 3
=, + <>, + <, + >, + <=, + >=, + in, + => + 4 ()
+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/funccall.html b/PABCNetHelp/LangGuide/Operations_Expressions/funccall.html new file mode 100644 index 000000000..e0cd01aaf --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/funccall.html @@ -0,0 +1,28 @@ + + + + + + +

+ , + :
+

+
+

+
+

( + )

+
+

+ , + ( + +). +, , + , , + , + .

+

 

+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/index_expressions.html b/PABCNetHelp/LangGuide/Operations_Expressions/index_expressions.html new file mode 100644 index 000000000..2650517e8 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/index_expressions.html @@ -0,0 +1,49 @@ + + + + + + +

:

+ - , . + . , + . , + , . +

PascalABC.NET : @, not, ^, *, /, div, mod, and, shl, shr, +, -, or, xor, =, >, <, <>, <=, >=, +as, is, +in, new + . @, +-, +, ^, not, new + ( ), + ( ), ++ +- .

+

PascalABC.NET

+ +

. +PascalABC.NET , + .

+ +

.

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/isasop.html b/PABCNetHelp/LangGuide/Operations_Expressions/isasop.html new file mode 100644 index 000000000..c1471293b --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/isasop.html @@ -0,0 +1,73 @@ + + + + + + + + +

is as

+

is , + . + as + ( + ).

+

+is :

+
+

a is ClassType

+
+

True +a ClassType + .

+

, Base + Derived - , , +Derived - Base, + b d Base + Derived, +b is Base d is +Base True, + b is Derived - False.

+

+as :

+
+

a as ClassType

+
+

+ClassType , + nil.

+

,

+
+

type
+   Base = class
+  end
;
+   Derived = class(Base)
+    procedure
p;
+    begin
+    end
;
+  end
;

+

var b: Base;

+

begin
+   b := new Base;
+   writeln(b is Derived);
+   b := new Derived;
+   writeln(b is Derived);
+ end.

+
+

False, + - True.

+

is +as + , .

+

1 .

+
+

if b is Derived then
+  Derived(b).p;

+
+

2 .

+
+

var d: Derived := b as Derived;
+ d.p;

+
+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/logicop.html b/PABCNetHelp/LangGuide/Operations_Expressions/logicop.html new file mode 100644 index 000000000..3bdf454e2 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/logicop.html @@ -0,0 +1,39 @@ + + + + + + + + + + +

+

+ and, or xor, + not, + + boolean +boolean. + : a and b + , a +b, a or b + , a, + b, a xor b + , a + b , +not a , a +. 

+

and +or + :

+
+

x and y + x , + , y ;
+ x or y + x , , + y .

 

+
+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/newop.html b/PABCNetHelp/LangGuide/Operations_Expressions/newop.html new file mode 100644 index 000000000..60357fedf --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/newop.html @@ -0,0 +1,43 @@ + + + + + + + +

new

+

+ +new :

+
+

new ()

+
+

+ .

+

:

+
+

type
+  My = class
+    constructor Create(i: integer);
+    begin
+    end;
end;

+

var m: My := new My(5);

+
+

+ Object Pacal:

+
+

var m: My := My.Create(5);

+
+

+, :

+
+

var m := new My(5);

+
+

, +. +( ) .

+


+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/oppriority.html b/PABCNetHelp/LangGuide/Operations_Expressions/oppriority.html new file mode 100644 index 000000000..e7e93e4df --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/oppriority.html @@ -0,0 +1,59 @@ + + + + + + +

+

. + , . , + , .

+

+ + + + + + + + + + + + + + + + + + + + + +
@, + not, + ^, +, - (), new + 1 ()
*, + /, + div, + mod, + and, + shl, + shr, + as, + is2
+, + - (), + or, + xor 3
=, + <>, + <, + >, + <=, + >=, + in4
?:  5 ()
+ +

+ .

+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/pointerop.html b/PABCNetHelp/LangGuide/Operations_Expressions/pointerop.html new file mode 100644 index 000000000..3620b368f --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/pointerop.html @@ -0,0 +1,19 @@ + + + + + + + +

+

+ + = <>.

+

+ ^: + p T, + p^ - T, + p. pointer + .

+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/relop.html b/PABCNetHelp/LangGuide/Operations_Expressions/relop.html new file mode 100644 index 000000000..e721692c0 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/relop.html @@ -0,0 +1,20 @@ + + + + + + + +

+

+<, >, <=, >=, =, <> boolean + .

+

= <> +. , + - . , + = +<>. + , .
+

+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/setop.html b/PABCNetHelp/LangGuide/Operations_Expressions/setop.html new file mode 100644 index 000000000..264d929bb --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/setop.html @@ -0,0 +1,50 @@ + + + + + + +

+

+ + (), - +() * (), ++=, -= +*=:

+
+

var s1,s2,s: set of byte;
+ begin
+
  s1 := [1..4];
+  s2 := [2..5];
+  s := s1 + s2; // s = [1..5]
+  s := s1 - s2; // s = [1]
+  s := s1 * s2; // s = [2..4]
// s += + s1 s := s + s1
// s -= + s1 s := s - s1
// s *= + s1 s := s * s1
  s += + [3..6];  // s = [2..6]
+   s -= [3];     + // s = [2,4..6]
+   s *= [1..5];  // s = [2,4..5] +
+ end.

+
+

  + = (), <> +(), <= ( ), < ( ), >= ( ) +> ( ):

+
+

[1..3] = [1,2,3]
+ ['a'..'z'] <> ['0'..'9']
+ [2..4] < [1..5]
+ [1..5] <= [1..5]
+ [1..5] > [2..4]
+ [1..5] >= [1..5]

+
+

, [1..5] < [1..5].

+

, in +, : 3 in [2..5] + True, 1 in [2..5] False.

+


+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/stringop.html b/PABCNetHelp/LangGuide/Operations_Expressions/stringop.html new file mode 100644 index 000000000..1237fd09a --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/stringop.html @@ -0,0 +1,46 @@ + + + + + + + + + +

+

<, >, <=, >=, =, <>. + +: s1 < s2 + i s1[i]<s2[i] + , s1 +s2. +

+

, + () +, . +

+

, 'a'+'b'='ab'.

+ +

+=: +

+
+

s += s1; // s := s + s1;

+
+

, + :

+
s := ': '+15; // s = ': 15'
s := +20.5+''; // s = '20.5'
s += 1; // s = '20.51'
+
+

*: +s*n n*s + , s, + n :

+
s := '*'*10; // s = '**********'
s := 5*'ab' // s = 'ababababab'
s := 'd'; s *= 3; // s = +'ddd' 
+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/typecast.html b/PABCNetHelp/LangGuide/Operations_Expressions/typecast.html new file mode 100644 index 000000000..a010e7065 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/typecast.html @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + +

+

+
+

()

+
+

. + + , , +, . + + .

+

.

+
+

type
+  pinteger = ^integer;
Season = (Winter,Spring,Summer,Autumn);
+ var
i: integer;
+     b: byte;
+     p: pointer := @i;
+     s: Season;
+ begin
+  i := integer('z');
+  b := byte(i);
+  i := pinteger(p);
+   s := Season(1);
+ end

+
+

Object .

+

.

+
+

var i: integer := 5;
+ begin
 
var o: Object := Object(i);
+ end

+
+ + + diff --git a/PABCNetHelp/LangGuide/Operations_Expressions/typeof_sizeof.html b/PABCNetHelp/LangGuide/Operations_Expressions/typeof_sizeof.html new file mode 100644 index 000000000..7733bd14d --- /dev/null +++ b/PABCNetHelp/LangGuide/Operations_Expressions/typeof_sizeof.html @@ -0,0 +1,26 @@ + + + + + + + + +

typeof sizeof

+

sizeof( ) + .

+

typeof( +) + System.Type. + typeof:

+
+

type
+  Base = class ... end;
+  Derived = class(Base) ... end;

+

var b: Base := new Derived;

+

begin
+  writeln(b.GetType = typeof(Derived)); 
+ end.

+
+ + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operators/assign.html b/PABCNetHelp/LangGuide/Operators/assign.html new file mode 100644 index 000000000..e5082b3ca --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/assign.html @@ -0,0 +1,64 @@ + + + + + + + + + + + + +

+ : +
+

:=

+
+

, +, . + := . + .

+

  +.

+

:

+
+

i := i + 1; // i 1

+
+

PascalABC.NET + ++=, -=, +*=, /=. + +. , + +=   *= + ++=, -= +*= - +. + .

+

++=, -=, +*=, /= + : a #= b +a := a # b, # - + ++, -, +*, /.

+

:

+
+

a += 3; // a 3
+ b *= 2; // b 2

+
+

/= , + - .

+ +

++=, -=, +*=, /= + + .

+ + + + diff --git a/PABCNetHelp/LangGuide/Operators/assignext.html b/PABCNetHelp/LangGuide/Operators/assignext.html new file mode 100644 index 000000000..b20af2681 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/assignext.html @@ -0,0 +1,47 @@ + + + + + + + + + +

+ : +
+

op

+
+

op - ++=, -=, +*=, /=.

+

, +, , + .

+

+ : a #= b +a := a # b, # - + ++, -, +*, /.

+

+. :

+
+

a += 3; // a := a + 3; - a 3
+ b *= 2; // b := b * 2; - b 2

+
+

/= + - .

+ +

+= *= +.

+

++=, -= +*= +.

+

++=, -= + .

+ + + diff --git a/PABCNetHelp/LangGuide/Operators/beginend.html b/PABCNetHelp/LangGuide/Operators/beginend.html new file mode 100644 index 000000000..5078095cd --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/beginend.html @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + +

()

+ + . :
+

begin

+ end

+
+ PascalABC.NET + . ( + , +; PascalABC.NET + , + ).

";". + begin +end, , + . +

+

:

+
+

s := 0;
p := 1;
+ for var i:=1 to 10 do
+ begin
p := p * i;
+  s := s + p

+ end

+
+

end ";". + , end + , .

+

, +:

+
+ begin
+
+   var a,b: integer;
var r: real;
+   readln(a,b);
+   x := a/b;
+   writeln(x);
+ end.
+ + + diff --git a/PABCNetHelp/LangGuide/Operators/break.html b/PABCNetHelp/LangGuide/Operators/break.html new file mode 100644 index 000000000..961143e72 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/break.html @@ -0,0 +1,60 @@ + + + + + + + + + + + + + + +

break, continue +exit

+

break continue + .

+

break +. + , . continue , + . :

+
+

flag := False;
+ for var i:=1 to 10 do
+ begin
+  read(x);
if x<0 then continue; // +
if x=5 then
begin
+    flag := True;
+    break; //
end
+ end;

+
+

break continue + .

+

exit + .

+
+

function Analyze(x: integer): boolean;
+ begin
if x<0 then
begin
+    Result := False;
+    exit
end;
+  ...
+ end;

+
+

exit + .

+

, +PascalABC.NET ( Borland Pascal +Borland Delphi) break, continue + exit , .

+ + + diff --git a/PABCNetHelp/LangGuide/Operators/case.html b/PABCNetHelp/LangGuide/Operators/case.html new file mode 100644 index 000000000..e5309e864 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/case.html @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + +

+

+ , . + :

+
+

case + of
+
 
1: + 1;
+   ...
+  
N: + N;
+   else
0
+
end;

+
+

+ , + . + if, else +.

+

case . + , , + . + , else , + else , case + .

+

, + a..b ( a +b); +. :

+
+

case Country of
+   '': Capital := '';
+   '': Capital := '';
+   '': Capital := '';
  else Capital + := ' ';
end;

+

case DayOfWeek of
+   1..5: writeln(' ');
+   6,7: writeln(' ');
+ end;

+
+

. ,

+
+

case i of
+   2,5: write(1);
+   4..6: write(2);
+ end;

+
+

.

+

 

+ + + diff --git a/PABCNetHelp/LangGuide/Operators/emptyop.html b/PABCNetHelp/LangGuide/Operators/emptyop.html new file mode 100644 index 000000000..76a47a038 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/emptyop.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + +

+ , + : +

1. + ";" +:

+
+

begin
+  
a := 1;
+
  b := a;
+ end

+
+ ";" + , , +";" . , ";" + end , . +

2. , :

+
+

label a;
+ begin
+  goto
a;
+
  x := 1;
+
a:
+ end

+
+ + + diff --git a/PABCNetHelp/LangGuide/Operators/for.html b/PABCNetHelp/LangGuide/Operators/for.html new file mode 100644 index 000000000..e22d61ec9 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/for.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + +

for

+

for +:

+
+

for := + + to + do
+  

+
+

+
+

for := + + downto + do
+  

+
+

, + :

+
+

for : := + to + downto + do
+  

+
+

+
+

for var := + + to + downto + do
+  

+
+

+ . + , + . , + :

+
+

for var i := 1 to 10 do
  + Print(i);
+ for var i := 1 to 5 do
+   Print(i*i);

+
+

for do + , + do - . + for + . + to + + , , + downto - + . - + . + . .

+

- . + + - .

+

:

+
+

var en: (red,green,blue,white);
+ ...
+ for
en := red to blue do
+  write(Ord(en):2);
+ for var c := 'a' to 'z' do
+  write(c);

+
+

for ... to + +  for ... +downto + , .

+

, +- . + PascalABC.NET .

+

- + . , +for :

+
+

for i := 1 to 10 do
+  i -= 1;

+
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/Operators/foreach.html b/PABCNetHelp/LangGuide/Operators/foreach.html new file mode 100644 index 000000000..48519bb52 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/foreach.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + +

foreach

+

foreach +:

+
+

foreach + in do
+  

+
+

+
+

foreach : + in + do
+  

+
+

+
+

foreach var in + do
+  

+
+

, +, , , +IEnumerable +IEnumerable<T>(, List<T>, +Dictionary<Key,Value> ..). + , +( +IEnumerable, object). +foreach +.

+

+ + . + , .. +.

+

:

+
+

var
+  ss: set of string := ['','',''];
+
  a: array of integer := (3,4,5);
+  b: array [1..5] of integer := (1,3,5,7,9);
+  l := new List<real>;
+ begin
+   + foreach
s: string in ss do
+    write(s,' ');
+  writeln;
+   + foreach x: integer in a do
+    write(x,' ');
+   writeln;
+   + foreach var x in b do
+    write(x,' ');
+   writeln;
+   + foreach var r in l do
+    write(r,' ');
+ end.

+
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/Operators/goto.html b/PABCNetHelp/LangGuide/Operators/goto.html new file mode 100644 index 000000000..650ae331e --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/goto.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + + +

goto

+ goto :
+

goto +

+
+

, +.

+

. + , +:

+
+

label1: +

+
+

+label:

+
+

label 1,2,3;

+
+

,

+

label 1,2;
+begin
var i := 5;
+2: if i<0 then goto 1;
+  write(i);
+  Dec(i);
goto 2;
+1:
+end.

+
+

543210.

+

, . + .

+

, + . , .

+

+ . +goto +: break +- , , exit - , +continue +- .

+

goto   - . +, k + :

+
+

var a: array [1..10,1..10] of integer;
+ ...
+   var found := False;
+   for var i:=1 to 10 do
+   for var j:=1 to 10 do
+    if a[i,j]=k then
+     begin
+      found := True;
+      goto + c1;
+     end;
+ c1: writeln(found);

+
+

 

+ + + + diff --git a/PABCNetHelp/LangGuide/Operators/if.html b/PABCNetHelp/LangGuide/Operators/if.html new file mode 100644 index 000000000..85ee0ad6b --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/if.html @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + +

+

. +

+

+:

+
+

if then + 1
+ else 2

+
+ . +, 1, + 2.

+ :

+
+

if then +

+
+

, +, +.

+

+
+

if 1 + then
+   if
2 + then 1
+   else + 2

+
+

else + if, else + . , +else +if, + :

+
+

if 1 + then
+ begin

+   if
2 + then 1
+
end
+ else 2

+
+

:

+
+

if a<b then
+  min := a
+ else min := b;

+
+ + + diff --git a/PABCNetHelp/LangGuide/Operators/index_statements.html b/PABCNetHelp/LangGuide/Operators/index_statements.html new file mode 100644 index 000000000..c49efc590 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/index_statements.html @@ -0,0 +1,49 @@ + + + + +Операторы: обзор + + + + +

Операторы: обзор

+

В PascalABC.NET определены следующие операторы.

+ + + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operators/lock.html b/PABCNetHelp/LangGuide/Operators/lock.html new file mode 100644 index 000000000..ad3cb2eff --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/lock.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + +

lock

+ lock :
+

lock do

+
+

.

+

lock , + . , +, lock, + . +, , - +. , + .

+

+
+

lock obj do
+  oper;

+
+

:

+
+

Monitor.Enter(obj);
+ try
+  oper;
+ finally
+  Monitor.Exit(obj);
+ end;

+
+ + + + diff --git a/PABCNetHelp/LangGuide/Operators/loop.html b/PABCNetHelp/LangGuide/Operators/loop.html new file mode 100644 index 000000000..8e67d033c --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/loop.html @@ -0,0 +1,31 @@ + + + + + + + + + + + + + +

loop

+

loop :

+
+

loop do
+  

+
+

+. <= 0 , .

+

loop , + :

+
+

loop 5 do
  Print(1);
+ var x := 1;
loop 5 do
+ begin
  Print(x);
  x += 2;
end;

+
+ + + diff --git a/PABCNetHelp/LangGuide/Operators/plusequal.html b/PABCNetHelp/LangGuide/Operators/plusequal.html new file mode 100644 index 000000000..98374b253 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/plusequal.html @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + +

+= -=

+

+= + , -= +- . . +:

+
+

procedure mult2(var r: real);
begin
  r := 2 * r;
+ end;

+

procedure add3(var r: real);
begin
  r := r + 3;
+ end;

+

var
+  p: procedure (var x: real);
+  r: real;

+

begin
+  r := 1;
+  p := mult2;
+  p += add3;
+  p(r); // r := 2 * r; r := r + 3;
+  p -= mult2;
+  p(r); // r := r + 3; 
+ end.

+
+

+ .

+

, / + . . + .

+

+= +-= +/ .NET. +:

+
+

procedure OnTimer1(sender: object; e: + System.Timers.ElapsedEventArgs);
+ begin
+   write(1);
+ end;

+

begin
+   var Timer1 := new + System.Timers.Timer(1000);
+   Timer1.Elapsed += + OnTimer1;
+   Timer1.Start;
+   while True do
+     Sleep(1000);
+ end.

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operators/proccall.html b/PABCNetHelp/LangGuide/Operators/proccall.html new file mode 100644 index 000000000..07e8bc12c --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/proccall.html @@ -0,0 +1,32 @@ + + + + + + + + + +

+ :
+

+
+

+
+

( + )

+
+

+ , + ( + +). +, , + , , + , + .

+

+, .

+ + + diff --git a/PABCNetHelp/LangGuide/Operators/raise.html b/PABCNetHelp/LangGuide/Operators/raise.html new file mode 100644 index 000000000..d095db42d --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/raise.html @@ -0,0 +1,36 @@ + + + + + + + + + + + + +

raise

+

raise + :

+
+

raise

+
+

+- , Exception. +:

+
+

raise new Exception('');

+
+

+ .  +

+

except + raise +:

+
+

raise;

+
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operators/repeat.html b/PABCNetHelp/LangGuide/Operators/repeat.html new file mode 100644 index 000000000..164c242fc --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/repeat.html @@ -0,0 +1,42 @@ + + + + + + + + + + + + + +

repeat

+

+ repeat :
+

repeat
+
 

+
until

+
+

while, + , , . + , , repeat, + .

+

repeat , + , . :

+
+

repeat
+  read(x);
+ until x=0;

+
+

, +:

+
+

repeat
+
  write(1);
+ until 2=1;

+
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/Operators/try_except.html b/PABCNetHelp/LangGuide/Operators/try_except.html new file mode 100644 index 000000000..dc25f6d23 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/try_except.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + +

try ... except

+

try ... except :

+
+

try
+  
 
+ except
+  
 
+ end;

+
+

try + . + , + except. + except, + , try ... +except ... end. + try, + except. + try , + . , try + , except + .

+

( +except) , + except , + + try. , + .

+

+ +, , +

+
+

on : do

+
+

';', + ';'. + - +( Exception), + - ( +). + except. + ( + ), +, , + + try. + on else, + , +.

+

, + , .. +.

+

+: , + . + , - ( + ). + Exception + .

+

.

+
+

var a: array [1..10] of integer;
+ try

+   var i: integer;
+  readln(i);
+  writeln(a[i] div i);
+   ...
+ except
on System.DivideByZeroException do
+    writeln(' 0'); 
on e: System.IndexOutOfRangeException do
+    writeln(e.Message);
on System.FormatException do
+    writeln(' ');
+   else writeln('- + ');
+ end;

+
+

 

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operators/try_finally.html b/PABCNetHelp/LangGuide/Operators/try_finally.html new file mode 100644 index 000000000..d33fbf395 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/try_finally.html @@ -0,0 +1,56 @@ + + + + + + + + + + + + + +

try +... finally

+

try ... finally :

+
+

try
+  

+ finally
+  
+ end;

+
+

finally + , + try. + .

+

finally + .

+

1. .

+
+

reset(f);
+ try

+  
...

+ finally
+   close(f);  +
+ end;

+
+

, + try.

+

2. .

+
+

New(p);
+ try
+  
...

+ finally
+   Dispose(p);
+ end;

+
+

, p, + , +try.

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operators/var_statement.html b/PABCNetHelp/LangGuide/Operators/var_statement.html new file mode 100644 index 000000000..6e35b35c6 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/var_statement.html @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + +

+

PascalABC.NET + begin-end + . .

+

:

+
+ var : + ;
+

+
+ var : + := ; +
+

+
+ var : + = ; +// Delphi +
+

+
+ var := + ; +
+

. :

+
+begin
+  var
a1,a2,a3: integer;
  var n: real := 5; 
var s := ' ';
...
+ end
.
+
+

+ . + . :

+
+begin
+  var
l := new List<integer>;
  var a := + Seq(1,3,5); // a Seq: array of + integer
+ end.
+
+

+

( ) :

+ +
+ var t := (1,2);
(var a, var b) := (1,2);
+

+ +
+ var (a,b) := (1,2);
+

+:

+
+ function SP(a,b: real) := (a*b,2*(a+b));  
+ ...
+ var (S,P) := SP(2,3); +
+

-

+

+-:

+
+ // var f := x -> x*x; // !
var + f : Func<integer,integer> := x -> x*x;
+
+

+ . , + +. .

+ + + diff --git a/PABCNetHelp/LangGuide/Operators/while.html b/PABCNetHelp/LangGuide/Operators/while.html new file mode 100644 index 000000000..9f1959d10 --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/while.html @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + +

while repeat

+ +while :
+

while do
+  

+
+

+ , do + . + , , , + .

+

, +:

+
+

while 2>1 do
+
  write(1);

+
+ +

repeat : +

+
+

repeat
+
 

+
until

+
+

while, + , , . + , , repeat, + .

+

repeat , + , . :

+
+

repeat
+  read(x);
+ until x=0;

+
+

, +:

+
+

repeat
+
  write(1);
+ until 2=1;

+
+ + + + diff --git a/PABCNetHelp/LangGuide/Operators/with.html b/PABCNetHelp/LangGuide/Operators/with.html new file mode 100644 index 000000000..03f9e512b --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/with.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + +

with

+ with + , , . :
+

with + do +

+
+

+

with do +

+
+

+ , + . , +

+
+

var
+  DateOfBirthday = record
+    Day: Integer;
+    Month: Integer;
+    Year: Integer;
end;

+
+

+ with :

+
+

DateOfBirthday.Day := 23;
+ DateOfBirthday.Month := 2;
+ DateOfBirthday.Year := 1965;

+
+

with + :

+
+

with DateOfBirthday do
+ begin
+  Day := 23;
+  Month := 2;
+  Year := 1965;
+ end;

+
+

, (, ), + (, ). +with + with, + with .. +with   , + . ,

+
+

var
+  x,y,z: integer;
+  a: record
+       x,y: integer;
   end;
+  b: record
+       x: integer;
   end;

+

+
with a,b do
+ begin
+   x := 1;
+  y := 2;
+   z := 3; 
+ end;
+

+
with a do
+  with b do
+  begin
+    x := 1;
+   y := 2;
+    z := 3; 
+  end;
+

+

b.x:=1;
+ a.y:=2;
+ z:=3;

+
+

with .

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Operators/yield.html b/PABCNetHelp/LangGuide/Operators/yield.html new file mode 100644 index 000000000..0bc675fed --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/yield.html @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + +

yield

+

yield , , + :

+
+

yield

+
+

, yield, . + +yield, , , + yield, .

+

:

+
+

function Squares(n: integer): sequence + of integer;
begin
  for var + i:=1 to n do
    yield + i*i
end;

begin
  + var q := Squares(5);

  foreach + var x in q do
    + Print(x);
  Println;

  q.Println;
end.

+
+

q +, .. n , + foreach q, + Println q. + yield Squares.

+

yield +i*i, + . + , .

+

yield . +, yield . :

+
+

var a := 2;

function + Squares(n: integer): sequence of integer;
begin
  + for var i:=1 to n do
    + yield i*a
end;

begin
  + var q := Squares(5);

  q.Println;
  a + := 3;
  q.Println;
end.

+
+

yield a . + : a + -, + a. + :

+
+

+ 2 4 6 8 10
3 6 9 12 15

+
+

, yield, :

+
    +
  1. , yield, .
  2. +
  3. - const, var, + params- .
  4. +
  5. yield, + Result, .
  6. +
  7. yield lock, try...except, + try..finally.
  8. +
  9. Yield with.
  10. +
  11. Yield -.
  12. +
  13. yield + .
  14. +
  15. yield
  16. +
  17. yield .
  18. +
+ + + diff --git a/PABCNetHelp/LangGuide/Operators/yieldsequence.html b/PABCNetHelp/LangGuide/Operators/yieldsequence.html new file mode 100644 index 000000000..5a8b7435d --- /dev/null +++ b/PABCNetHelp/LangGuide/Operators/yieldsequence.html @@ -0,0 +1,48 @@ + + + + + + + + + + + + +

yield sequence

+

yield sequence , , + yield, + :

+
+

yield sequence

+
+

yield, yield +sequence , + -. +, :

+
+

function f: sequence of real;
+ begin
  yield sequence + Seq(1,2,3);
  yield 4;
end;
+
begin
  f.Println;
end.

+
+

+
+

1 2 3 4

+
+

+ :

+
+

function InfixPrintTree<T>(root: Node<T>): + sequence of T;
begin
  if + root = nil then exit;
  yield + sequence InfixPrintTree(root.left);
  yield + root.data;
  yield sequence + InfixPrintTree(root.right);
end;

+
+

, yield sequence, +, yield.

+ + + diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Common subroutines for files.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Common subroutines for files.html new file mode 100644 index 000000000..8fc8fde67 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Common subroutines for files.html @@ -0,0 +1,25 @@ + + + + + + + + + +

+ + + + + + + +
procedure Assign(f: ; name: string); +
        
procedure AssignFile(f: ; name: string); +
        
procedure Close(f: ); +
        
procedure CloseFile(f: ); +
        
function Eof(f: ): boolean; +
         True,
procedure Erase(f: ); +
         ,
procedure Rename(f: ; newname: string); +
         , , newname.
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Common subroutines.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Common subroutines.html new file mode 100644 index 000000000..17f90c3a2 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Common subroutines.html @@ -0,0 +1,46 @@ + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + +
procedure Dec(var i: integer); +
         i 1
procedure Dec(var i: integer; n: integer); +
         i n
procedure Dec(var e: ); +
         1
procedure Dec(var e: ; n: integer); +
         n
function Eof: boolean; +
         True,
function Eoln: boolean; +
         True,
procedure Inc(var i: integer); +
         i 1
procedure Inc(var i: integer; n: integer); +
         i n
procedure Inc(var e: ); +
         1
procedure Inc(var e: ; n: integer); +
         n
function Ord(a: ): ; +
         a
function Ord(a: ): integer; +
         a
function Pred(x: ): ; +
         x
function Pred(x: ): ; +
         x
function Succ(x: ): ; +
         x
function Succ(x: ): ; +
         x
procedure Swap<T>(var a, b: T); +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for BigInteger.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for BigInteger.html new file mode 100644 index 000000000..c58aeeac7 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for BigInteger.html @@ -0,0 +1,7 @@ + + + +

BigInteger

+ +
function Sqrt(Self: BigInteger): real; extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for Complex.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for Complex.html new file mode 100644 index 000000000..d879fe4c5 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for Complex.html @@ -0,0 +1,7 @@ + + + +

Complex

+ +
function Conjugate(Self: Complex): Complex; extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for Func.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for Func.html new file mode 100644 index 000000000..545d5f891 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for Func.html @@ -0,0 +1,7 @@ + + + +

Func

+ +
function Compose<T1, T2, TResult>(Self: T2->TResult; composer: T1->T2): T1->TResult; extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for IDictionary.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for IDictionary.html new file mode 100644 index 000000000..63b27b3fb --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for IDictionary.html @@ -0,0 +1,7 @@ + + + +

IDictionary

+ +
function Get<Key, Value>(Self: IDictionary<Key, Value>; K: Key): Value; extensionmethod; +
         , , ,
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for List T.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for List T.html new file mode 100644 index 000000000..41f87c41b --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for List T.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + + +

List

+ + + + + + + + + + + + + + + +
function AdjacentFind<T>(Self: IList<T>; start: integer := 0): integer; extensionmethod; +
         . , -1
function AdjacentFind<T>(Self: IList<T>; eq: (T,T)->boolean; start: integer := 0): integer; extensionmethod; +
         , eq, . , -1
procedure Fill<T>(Self: IList<T>; f: integer->T); extensionmethod; +
         ,
function IndexMax<T>(self: IList<T>; index: integer := 0): integer; extensionmethod;where T: System.IComparable<T>; +
         index
function IndexMin<T>(Self: IList<T>; index: integer := 0): integer; extensionmethod;where T: IComparable<T>; +
         index
function LastIndexMax<T>(Self: IList<T>): integer; extensionmethod;where T: System.IComparable<T>; +
        
function LastIndexMax<T>(Self: IList<T>; index: integer): integer; extensionmethod;where T: System.IComparable<T>; +
         [0,index-1]
function LastIndexMin<T>(Self: IList<T>): integer; extensionmethod;where T: System.IComparable<T>; +
        
function LastIndexMin<T>(Self: IList<T>; index: integer): integer; extensionmethod;where T: System.IComparable<T>; +
         [0,index-1]
function RemoveLast<T>(Self: List<T>): List<T>; extensionmethod; +
         . ,
procedure Replace<T>(Self: IList<T>; oldValue, newValue: T); extensionmethod; +
        
function Shuffle<T>(Self: List<T>): List<T>; extensionmethod; +
        
function Slice<T>(Self: List<T>; from, step: integer): List<T>; extensionmethod; +
         from step
function Slice<T>(Self: List<T>; from, step, count: integer): List<T>; extensionmethod; +
         from step count
procedure Transform<T>(Self: IList<T>; f: T->T); extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array [,] of T.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array [,] of T.html new file mode 100644 index 000000000..7eaf0db09 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array [,] of T.html @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + +

array [,] of T

+ + + + + + + + + + + + + + + + + + + + + + + + +
function Col<T>(Self: array [,] of T; k: integer): array of T; extensionmethod; +
        k-
function ColCount<T>(Self: array [,] of T): integer; extensionmethod; +
        
function Cols<T>(Self: array [,] of T): sequence of sequence of T; extensionmethod; +
        
function ColSeq<T>(Self: array [,] of T; k: integer): sequence of T; extensionmethod; +
        k-
function ConvertAll<T, T1>(Self: array [,] of T; converter: T->T1): array [,] of T1; extensionmethod; +
        
function ElementsByCol<T>(Self: array [,] of T): sequence of T; extensionmethod; +
        
function ElementsByRow<T>(Self: array [,] of T): sequence of T; extensionmethod; +
        
function ElementsWithIndexes<T>(Self: array [,] of T): sequence of (T, integer, integer); extensionmethod; +
         (a[i,j],i,j)
procedure Fill<T>(Self: array [,] of T; f: (integer,integer) ->T); extensionmethod; +
         ,
function Print<T>(Self: array [,] of T; w: integer := 4): array [,] of T; extensionmethod; +
         , w -
function Print(Self: array [,] of real; w: integer := 7; f: integer := 2): array [,] of real; extensionmethod; +
         :w:f
function Println<T>(Self: array [,] of T; w: integer := 4): array [,] of T; extensionmethod; +
         , w -
function Println(Self: array [,] of real; w: integer := 7; f: integer := 2): array [,] of real; extensionmethod; +
         :w:f
function Row<T>(Self: array [,] of T; k: integer): array of T; extensionmethod; +
        k-
function RowCount<T>(Self: array [,] of T): integer; extensionmethod; +
        
function Rows<T>(Self: array [,] of T): sequence of sequence of T; extensionmethod; +
        
function RowSeq<T>(Self: array [,] of T; k: integer): sequence of T; extensionmethod; +
        k-
procedure SetCol<T>(Self: array [,] of T; k: integer; a: array of T); extensionmethod; +
         k
procedure SetCol<T>(Self: array [,] of T; k: integer; a: sequence of T); extensionmethod := Self.SetCol(k,a.ToArray); +
         k
procedure SetRow<T>(Self: array [,] of T; k: integer; a: array of T); extensionmethod; +
         k
procedure SetRow<T>(Self: array [,] of T; k: integer; a: sequence of T); extensionmethod := Self.SetRow(k,a.ToArray); +
         k
procedure SwapCols<T>(Self: array [,] of T; k1, k2: integer); extensionmethod; +
         k1 k2
procedure SwapRows<T>(Self: array [,] of T; k1, k2: integer); extensionmethod; +
         k1 k2
procedure Transform<T>(Self: array [,] of T; f: T->T); extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html new file mode 100644 index 000000000..cc298b4e8 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for array of T.html @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

array of T

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
function AdjacentFind<T>(Self: array of T; start: integer := 0): integer; extensionmethod; +
        / . , -1
function AdjacentFind<T>(Self: array of T; eq: (T,T)->boolean; start: integer := 0): integer; extensionmethod; +
         , eq, . , -1
function BinarySearch<T>(self: array of T; x: T): integer; extensionmethod; +
        
function ConvertAll<T, T1>(self: array of T; converter: T->T1): array of T1; extensionmethod; +
        
procedure Fill<T>(Self: array of T; f: integer -> T); extensionmethod; +
         ,
function Find<T>(self: array of T; p: T->boolean): T; extensionmethod; +
         , . ,
function FindAll<T>(self: array of T; p: T->boolean): array of T; extensionmethod; +
         ,
function FindIndex<T>(self: array of T; p: T->boolean): integer; extensionmethod; +
         , . , -1
function FindIndex<T>(self: array of T; start: integer; p: T->boolean): integer; extensionmethod; +
         , , start. , -1
function FindLast<T>(self: array of T; p: T->boolean): T; extensionmethod; +
         , . ,
function FindLastIndex<T>(self: array of T; p: T->boolean): integer; extensionmethod; +
         , . ,
function FindLastIndex<T>(self: array of T; start: integer; p: T->boolean): integer; extensionmethod; +
         , , start. ,
function High(self: System.Array); extensionmethod := High(Self); +
        
function Indexes<T>(Self: array of T): sequence of integer; extensionmethod := Range(0, Self.Length - 1); +
        
function IndexesOf<T>(Self: array of T; cond: T->boolean): sequence of integer; extensionmethod; +
         ,
function IndexesOf<T>(Self: array of T; cond: (T,integer) ->boolean): sequence of integer; extensionmethod; +
         ,
function IndexMax<T>(self: array of T; index: integer := 0): integer; extensionmethod; where T: System.IComparable<T>; +
         index
function IndexMin<T>(Self: array of T; index: integer := 0): integer; extensionmethod; where T: System.IComparable<T>; +
        / index
function IndexOf<T>(self: array of T; x: T): integer; extensionmethod; +
         -1
function IndexOf<T>(self: array of T; x: T; start: integer): integer; extensionmethod; +
         start -1
function LastIndexMax<T>(Self: array of T): integer; extensionmethod; where T: System.IComparable<T>; +
        
function LastIndexMax<T>(Self: array of T; index: integer): integer; extensionmethod; where T: System.IComparable<T>; +
         [0,index]
function LastIndexMin<T>(Self: array of T): integer; extensionmethod; where T: System.IComparable<T>; +
        
function LastIndexMin<T>(Self: array of T; index: integer): integer; extensionmethod; where T: System.IComparable<T>; +
         [0,index]
function LastIndexOf<T>(self: array of T; x: T): integer; extensionmethod; +
         -1
function LastIndexOf<T>(self: array of T; x: T; start: integer): integer; extensionmethod; +
         start -1
function Low(self: System.Array); extensionmethod := Low(Self); +
        
function Max<T>(Self: array of T): T; extensionmethod;where T: System.IComparable<T>; +
        
function Max(Self: array of integer): integer; extensionmethod; +
        
function Max(Self: array of real): real; extensionmethod; +
        
function Min<T>(Self: array of T): T; extensionmethod;where T: System.IComparable<T>; +
        
function Min(Self: array of integer): integer; extensionmethod; +
        
function Min(Self: array of real): real; extensionmethod; +
        
procedure Replace<T>(Self: array of T; oldValue,newValue: T); extensionmethod; +
        
function Shuffle<T>(Self: array of T): array of T; extensionmethod; +
        
function Slice<T>(Self: array of T; from, step: integer): array of T; extensionmethod; +
         from step
function Slice<T>(Self: array of T; from, step, count: integer): array of T; extensionmethod; +
         from step count
procedure Sort<T>(self: array of T); extensionmethod; +
        
procedure Sort<T>(self: array of T; cmp: (T,T) ->integer); extensionmethod; +
         , cmp
procedure Transform<T>(self: array of T; f: T -> T); extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for char.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for char.html new file mode 100644 index 000000000..58b228841 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for char.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + +

char

+ + + + + + + + + + + + +
function Between(Self: char; a, b: char): boolean; extensionmethod; +
         True
function Code(Self: char): integer; extensionmethod := word(Self); +
         Unicode
function InRange(Self: char; a,b: char): boolean; extensionmethod; +
         True
function IsDigit(Self: char); extensionmethod := char.IsDigit(Self); +
        
function IsLetter(Self: char): boolean; extensionmethod; +
        
function IsLower(Self: char): boolean; extensionmethod; +
        
function IsUpper(Self: char): boolean; extensionmethod; +
        
function Pred(Self: char); extensionmethod := PABCSystem.Pred(Self); +
        
function Succ(Self: char); extensionmethod := PABCSystem.Succ(Self); +
        
function ToDigit(Self: char): integer; extensionmethod; +
        
function ToLower(Self: char): char; extensionmethod; +
        
function ToUpper(Self: char): char; extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for integer.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for integer.html new file mode 100644 index 000000000..ccad1a9d4 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for integer.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + +

integer

+ + + + + + + + + + +
function Between(Self: integer; a, b: integer): boolean; extensionmethod; +
         True
function Downto(Self: integer; n: integer): sequence of integer; extensionmethod; +
         n
function InRange(Self: integer; a,b: integer): boolean; extensionmethod; +
         True
function IsEven(Self: integer): boolean; extensionmethod; +
        ,
function IsOdd(Self: integer): boolean; extensionmethod; +
        ,
function Range(Self: integer): sequence of integer; extensionmethod; +
         1
function Sqr(Self: integer): integer; extensionmethod; +
        
function Sqrt(Self: integer): real; extensionmethod; +
        
function Times(Self: integer): sequence of integer; extensionmethod; +
         0,1,...n-1
function To(Self: integer; n: integer): sequence of integer; extensionmethod; +
         n
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for real.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for real.html new file mode 100644 index 000000000..3d6857ac6 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for real.html @@ -0,0 +1,33 @@ + + + + + + + + + + + +

real

+ + + + + + + + + + +
function Between(Self: real; a, b: real): boolean; extensionmethod; +
         True
function InRange(Self: real; a,b: real): boolean; extensionmethod; +
         True
function Round(Self: real): integer; extensionmethod; +
         ,
function Round(Self: real; digits: integer): real; extensionmethod; +
         x, digits
function RoundBigInteger(Self: real): BigInteger; extensionmethod; +
         ,
function Sqr(Self: real): real; extensionmethod; +
        
function Sqrt(Self: real): real; extensionmethod; +
        
function ToString(Self: real; frac: integer): string; extensionmethod; +
         , frac
function Trunc(Self: real): integer; extensionmethod; +
        
function TruncBigInteger(Self: real): BigInteger; extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for sequence of T.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for sequence of T.html new file mode 100644 index 000000000..f44b34920 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for sequence of T.html @@ -0,0 +1,152 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

sequence of T

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
function AdjacentGroup<T>(Self: sequence of T): sequence of array of T; extensionmethod; +
         ,
function Batch<T>(Self: sequence of T; size: integer): sequence of sequence of T; extensionmethod; +
         size
function Batch<T, Res>(Self: sequence of T; size: integer; proj: Func<IEnumerable<T>, Res>): sequence of Res; extensionmethod; +
         size
function Cartesian<T, T1>(Self: sequence of T; b: sequence of T1): sequence of (T, T1); extensionmethod; +
        
function Cartesian<T, T1, T2>(Self: sequence of T; b: sequence of T1; func: (T,T1)->T2): sequence of T2; extensionmethod; +
        
procedure ForEach<T>(Self: sequence of T; action: T -> ()); extensionmethod; +
        
procedure ForEach<T>(Self: sequence of T; action: (T,integer) -> ()); extensionmethod; +
         ,
function Incremental(Self: sequence of integer): sequence of integer; extensionmethod; +
        
function Incremental(Self: array of integer): sequence of integer; extensionmethod; +
        
function Incremental(Self: List<integer>): sequence of integer; extensionmethod; +
        
function Incremental(Self: LinkedList<integer>): sequence of integer; extensionmethod; +
        
function Incremental(Self: sequence of real): sequence of real; extensionmethod; +
        
function Incremental(Self: array of real): sequence of real; extensionmethod; +
        
function Incremental(Self: List<real>): sequence of real; extensionmethod; +
        
function Incremental(Self: LinkedList<real>): sequence of real; extensionmethod; +
        
function Incremental<T, T1>(Self: sequence of T; func: (T,T)->T1): sequence of T1; extensionmethod; +
         . func
function Incremental<T, T1>(Self: sequence of T; func: (T,T,integer)->T1): sequence of T1; extensionmethod; +
         . func
function Interleave<T>(Self: sequence of T; a: sequence of T): sequence of T; extensionmethod; +
        
function Interleave<T>(Self: sequence of T; a, b: sequence of T): sequence of T; extensionmethod; +
        
function Interleave<T>(Self: sequence of T; a, b, c: sequence of T): sequence of T; extensionmethod; +
        
function JoinIntoString<T>(Self: sequence of T; delim: string): string; extensionmethod; +
         , , delim
function JoinIntoString<T>(Self: sequence of T): string; extensionmethod; +
         , ,
function LastMaxBy<T, TKey>(Self: sequence of T; selector: T->TKey): T; extensionmethod; +
        
function LastMinBy<T, TKey>(Self: sequence of T; selector: T->TKey): T; extensionmethod; +
        
function MaxBy<T, TKey>(Self: sequence of T; selector: T->TKey): T; extensionmethod; +
        
function MinBy<T, TKey>(Self: sequence of T; selector: T->TKey): T; extensionmethod; +
        
function Numerate<T>(Self: sequence of T): sequence of (integer, T); extensionmethod; +
        
function Numerate<T>(Self: sequence of T; from: integer): sequence of (integer, T); extensionmethod; +
         from
function Order<T>(Self: sequence of T): sequence of T; extensionmethod; +
        
function OrderDescending<T>(Self: sequence of T): sequence of T; extensionmethod; +
        
function Pairwise<T>(Self: sequence of T): sequence of (T, T); extensionmethod; +
        
function Pairwise<T, Res>(Self: sequence of T; func: (T,T)->Res): sequence of Res; extensionmethod; +
         , func
function Partition<T>(Self: sequence of T; cond: T->boolean): (sequence of T, sequence of T); extensionmethod; +
        
function Partition<T>(Self: sequence of T; cond: (T,integer)->boolean): (sequence of T, sequence of T); extensionmethod; +
         ,
function Print<T>(Self: sequence of T; delim: string): sequence of T; extensionmethod; +
         , delim
function Print<T>(Self: sequence of T): sequence of T; extensionmethod; +
         ,
function PrintLines<T>(Self: sequence of T): sequence of T; extensionmethod; +
         ,
function PrintLines<T,T1>(Self: sequence of T; map: T->T1): sequence of T; extensionmethod; +
         , map
function Println<T>(Self: sequence of T; delim: string): sequence of T; extensionmethod; +
         , delim ,
function Println<T>(Self: sequence of T): sequence of T; extensionmethod; +
         , ,
function SkipLast<T>(self: sequence of T; count: integer := 1): sequence of T; extensionmethod; +
         count
function Slice<T>(Self: sequence of T; from, step: integer): sequence of T; extensionmethod; +
         from step > 0
function Slice<T>(Self: sequence of T; from, step, count: integer): sequence of T; extensionmethod; +
         from step > 0 count
function Sorted<T>(Self: sequence of T): sequence of T; extensionmethod; +
        
function SortedDescending<T>(Self: sequence of T): sequence of T; extensionmethod; +
        
function SplitAt<T>(Self: sequence of T; ind: integer): (sequence of T, sequence of T); extensionmethod; +
         ind
function Tabulate<T, T1>(Self: sequence of T; F: T->T1): sequence of (T, T1); extensionmethod; +
        
function TakeLast<T>(Self: sequence of T; count: integer): sequence of T; extensionmethod; +
         count
function ToHashSet<T>(Self: sequence of T): HashSet<T>; extensionmethod; +
         HashSet
function ToLinkedList<T>(Self: sequence of T): LinkedList<T>; extensionmethod; +
         LinkedList
function ToSortedSet<T>(Self: sequence of T): SortedSet<T>; extensionmethod; +
         SortedSet
function UnZipTuple<T, T1>(Self: sequence of (T, T1)): (sequence of T, sequence of T1); extensionmethod; +
        
function UnZipTuple<T, T1, T2>(Self: sequence of (T, T1, T2)): (sequence of T, sequence of T1, sequence of T2); extensionmethod; +
        
function UnZipTuple<T, T1, T2, T3>(Self: sequence of (T, T1, T2, T3)): (sequence of T, sequence of T1, sequence of T2, sequence of T3); extensionmethod; +
        
function WriteLines(Self: sequence of string; fname: string): sequence of string; extensionmethod; +
        
function ZipTuple<T, T1>(Self: sequence of T; a: sequence of T1): sequence of (T, T1); extensionmethod; +
        
function ZipTuple<T, T1, T2>(Self: sequence of T; a: sequence of T1; b: sequence of T2): sequence of (T, T1, T2); extensionmethod; +
        
function ZipTuple<T, T1, T2, T3>(Self: sequence of T; a: sequence of T1; b: sequence of T2; c: sequence of T3): sequence of (T, T1, T2, T3); extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for string.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for string.html new file mode 100644 index 000000000..1eecd24ee --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for string.html @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + +

string

+ + + + + + + + + + + + + + + + + + + + + + + +
function Between(Self: string; a, b: string): boolean; extensionmethod; +
         True
function InRange(Self: string; a,b: string): boolean; extensionmethod; +
         True
function Inverse(Self: string): string; extensionmethod; +
        
function IsMatch(Self: string; reg: string; options: RegexOptions := RegexOptions.None): boolean; extensionmethod := Regex.IsMatch(Self, reg, options); +
        
function Left(Self: string; length: integer): string; extensionmethod; +
         , length
function Matches(Self: string; reg: string; options: RegexOptions := RegexOptions.None): sequence of Match; extensionmethod; +
         Match
function MatchValue(Self: string; reg: string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +
        
function MatchValues(Self: string; reg: string; options: RegexOptions := RegexOptions.None): sequence of string; extensionmethod; +
        
function ReadInteger(Self: string; var from: integer): integer; extensionmethod; +
         from from
function ReadReal(Self: string; var from: integer): real; extensionmethod; +
         from from
function ReadWord(Self: string; var from: integer): string; extensionmethod; +
         from from
function RegexReplace(Self: string; reg, repl: string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +
        
function RegexReplace(Self: string; reg: string; repl: Match->string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +
        
function Remove(Self: string; params targets: array of string): string; extensionmethod; +
        
function Right(Self: string; length: integer): string; extensionmethod; +
         , length
function Slice(Self: string; from, step: integer): string; extensionmethod; +
         from step
function Slice(Self: string; from, step, count: integer): string; extensionmethod; +
         from step count
function ToBigInteger(Self: string): BigInteger; extensionmethod; +
         BigInteger
function ToInteger(Self: string): integer; extensionmethod; +
        
function ToIntegers(Self: string): array of integer; extensionmethod; +
        
function ToReal(Self: string): real; extensionmethod; +
        
function ToReals(Self: string): array of real; extensionmethod; +
        
function ToWords(Self: string; params delim: array of char): array of string; extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for typed files.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for typed files.html new file mode 100644 index 000000000..7268d002b --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Extension methods for typed files.html @@ -0,0 +1,24 @@ + + + + + + + + +

+ + + + + + + +
function Read<T>(Self: file of T): T; extensionmethod; +
        
function Read2<T>(Self: file of T): (T,T); extensionmethod; +
        
function Read3<T>(Self: file of T): (T,T,T); extensionmethod; +
        
function ReadElements<T>(Self: file of T): sequence of T; extensionmethod; +
        
function ReadElements<T>(fname: string): sequence of T; +
         ,
function Seek<T>(Self: file of T; n: int64): file of T; extensionmethod; +
         n
procedure Write<T>(Self: file of T; params vals: array of T); extensionmethod; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Functions for Complex numbers.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Functions for Complex numbers.html new file mode 100644 index 000000000..134d6ea52 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Functions for Complex numbers.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + +

+ + + + + + + + + + + + +
function Abs(c: Complex): Complex; +
        
function Conjugate(c: Complex): Complex; +
        
function Cos(c: Complex): Complex; +
        
function Cplx(re, im: real): Complex; +
         re im
function CplxFromPolar(magnitude, phase: real): Complex; +
        
function Exp(c: Complex): Complex; +
        
function Ln(c: Complex): Complex; +
        
function Log(c: Complex): Complex; +
        
function Log10(c: Complex): Complex; +
        
function Power(c, power: Complex): Complex; +
        
function Sin(c: Complex): Complex; +
        
function Sqrt(c: Complex): Complex; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Functions for file names.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Functions for file names.html new file mode 100644 index 000000000..e545a6bcd --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Functions for file names.html @@ -0,0 +1,22 @@ + + + + + + + + +

+ + + + + + +
function ExpandFileName(fname: string): string; +
         fname
function ExtractFileDir(fname: string): string; +
         fname
function ExtractFileDrive(fname: string): string; +
         fname
function ExtractFileExt(fname: string): string; +
         fname
function ExtractFileName(fname: string): string; +
         fname
function ExtractFilePath(fname: string): string; +
         fname
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Infinite sequences.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Infinite sequences.html new file mode 100644 index 000000000..fb135a4cc --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Infinite sequences.html @@ -0,0 +1,14 @@ + + + + +

+ + + + +
function Cycle<T>(Self: sequence of T): sequence of T; extensionmethod; +
        
function Step(Self: integer): sequence of integer; extensionmethod; +
         1
function Step(Self: integer; step: integer): sequence of integer; extensionmethod; +
         step
function Step(Self: real; step: real): sequence of real; extensionmethod; +
         step
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Math subroutines.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Math subroutines.html new file mode 100644 index 000000000..98761fb66 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Math subroutines.html @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
function Abs(x: ): ; +
         x
function ArcCos(x: real): real; +
         x
function ArcSin(x: real): real; +
         x
function ArcTan(x: real): real; +
         x
function Ceil(x: real): integer; +
         >= x
function Cos(x: real): real; +
         x
function Cosh(x: real): real; +
         x
function DegToRad(x: real): real; +
        
function Exp(x: real): real; +
         x
function Floor(x: real): integer; +
         <= x
function Frac(x: real): real; +
         x
function Int(x: real): real; +
         x
function Ln(x: real): real; +
         x
function Log(x: real): real; +
         x
function Log10(x: real): real; +
         x
function Log2(x: real): real; +
         x 2
function LogN(base, x: real): real; +
         x base
function Max(a: , b: ): ; +
         a,b
function Min(a: , b: ): ; +
         a,b
function Odd(i: ): boolean; +
         True, i , False
function Power(x, y: real): real; +
         x y
function Power(x: real; n: integer): real; +
         x n
function Power(x: BigInteger; y: integer): BigInteger; +
         x y
function RadToDeg(x: real): real; +
        
function Random(maxValue: integer): integer; +
         0 maxValue-1
function Random(a, b: integer): integer; +
         a b
function Random: real; +
         [0..1)
function Random2(maxValue: integer): (integer, integer); +
         0 maxValue-1
function Random2(a, b: integer): (integer, integer); +
         a b
function Random2: (real, real); +
         [0..1)
function Random3(maxValue: integer): (integer, integer, integer); +
         0 maxValue-1
function Random3(a, b: integer): (integer, integer, integer); +
         a b
function Random3: (real, real, real); +
         [0..1)
procedure Randomize(seed: integer); +
         , seed. seed
procedure Randomize; +
        
function Round(x: real): integer; +
         x, . , ( ): Round(2.5)=2, Round(3.5)=4
function Round(x: real; digits: integer): real; +
         x, digits
function RoundBigInteger(x: real): BigInteger; +
         x,
function Sign(x: ): ; +
         x
function Sin(x: real): real; +
         x
function Sinh(x: real): real; +
         x
function Sqr(x: ): ; +
         x
function Sqrt(x: real): real; +
         x
function Tan(x: real): real; +
         x
function Tanh(x: real): real; +
         x
function Trunc(x: real): integer; +
         x
function TruncBigInteger(x: real): BigInteger; +
         x
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Print for elementary types.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Print for elementary types.html new file mode 100644 index 000000000..835f8c4b1 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Print for elementary types.html @@ -0,0 +1,16 @@ + + + + +

Print

+ + + + + +
function Print(Self: real): real; extensionmethod; +
        ction Print(Self: integer): integer; extensionmethod;
function Print(Self: boolean): boolean; extensionmethod; +
        ction Print(Self: char): char; extensionmethod;
function Println(Self: integer): integer; extensionmethod; +
        ction Print(Self: BigInteger): BigInteger; extensionmethod;
function Println(Self: char): char; extensionmethod; +
        ction Println(Self: real): real; extensionmethod;
function Println(Self: BigInteger): BigInteger; extensionmethod; +
        ction Println(Self: boolean): boolean; extensionmethod;
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Read subroutines.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Read subroutines.html new file mode 100644 index 000000000..1120a44b3 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Read subroutines.html @@ -0,0 +1,167 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
procedure Read(a,b,...); +
         a,b,...
procedure Read(f: ; a,b,...); +
         a,b,... f
function ReadBoolean: boolean; +
         boolean,
function ReadBoolean(prompt: string): boolean; +
         boolean,
function ReadBoolean(f: Text): boolean; +
         boolean, f
function ReadChar: char; +
         char,
function ReadChar(prompt: string): char; +
         char,
function ReadChar(f: Text): char; +
         char, f
function ReadChar2: (char, char); +
         char,
function ReadChar2(prompt: string): (char, char); +
         char,
function ReadChar3: (char, char, char); +
         char,
function ReadChar3(prompt: string): (char, char, char); +
         char,
function ReadInteger: integer; +
         integer,
function ReadInteger(prompt: string): integer; +
         integer,
function ReadInteger(f: Text): integer; +
         integer, f
function ReadInteger2: (integer, integer); +
         integer,
function ReadInteger2(prompt: string): (integer, integer); +
         integer,
function ReadInteger3: (integer, integer, integer); +
         integer,
function ReadInteger3(prompt: string): (integer, integer, integer); +
         integer,
procedure Readln(a,b,...); +
         a,b,...
procedure Readln(f: Text; a,b,...); +
         a,b,... f
function ReadlnBoolean: boolean; +
         boolean, ,
function ReadlnBoolean(prompt: string): boolean; +
         boolean, ,
function ReadlnBoolean(f: Text): boolean; +
         boolean, f,
function ReadlnChar: char; +
         char, ,
function ReadlnChar(prompt: string): char; +
         char, ,
function ReadlnChar(f: Text): char; +
         char, f,
function ReadlnChar2: (char, char); +
         char, ,
function ReadlnChar2(prompt: string): (char, char); +
         char, ,
function ReadlnChar3: (char, char, char); +
         char, ,
function ReadlnChar3(prompt: string): (char, char, char); +
         char, ,
function ReadlnInteger: integer; +
         integer, ,
function ReadlnInteger(prompt: string): integer; +
         integer, ,
function ReadlnInteger(f: Text): integer; +
         integer, f,
function ReadlnInteger2: (integer, integer); +
         integer, ,
function ReadlnInteger2(prompt: string): (integer, integer); +
         integer, ,
function ReadlnInteger3: (integer, integer, integer); +
         integer, ,
function ReadlnInteger3(prompt: string): (integer, integer, integer); +
         integer, ,
function ReadlnReal: real; +
         real, ,
function ReadlnReal(prompt: string): real; +
         real, ,
function ReadlnReal(f: Text): real; +
         real, f,
function ReadlnReal2: (real, real); +
         real, ,
function ReadlnReal2(prompt: string): (real, real); +
         real, ,
function ReadlnReal3: (real, real, real); +
         real, ,
function ReadlnReal3(prompt: string): (real, real, real); +
         real, ,
function ReadlnString: string; +
         string, ,
function ReadlnString(prompt: string): string; +
         string, ,
function ReadlnString(f: Text): string; +
         string, f,
function ReadlnString2: (string, string); +
         string, ,
function ReadlnString2(prompt: string): (string, string); +
         string, ,
function ReadlnString3: (string, string, string); +
         string, ,
function ReadlnString3(prompt: string): (string, string, string); +
         string, ,
function ReadReal: real; +
         real,
function ReadReal(prompt: string): real; +
         real,
function ReadReal(f: Text): real; +
         real, f
function ReadReal2: (real, real); +
         real,
function ReadReal2(prompt: string): (real, real); +
         real,
function ReadReal3: (real, real, real); +
         real,
function ReadReal3(prompt: string): (real, real, real); +
         real,
function ReadString: string; +
         string,
function ReadString(prompt: string): string; +
         string,
function ReadString(f: Text): string; +
         string, f
function ReadString2: (string, string); +
         string,
function ReadString2(prompt: string): (string, string); +
         string,
function ReadString3: (string, string, string); +
         string,
function ReadString3(prompt: string): (string, string, string); +
         string,
function TryRead(var x: integer): boolean; +
         x . False
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Short functions Lst, HSet, SSet, Dict, KV.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Short functions Lst, HSet, SSet, Dict, KV.html new file mode 100644 index 000000000..22a8c1a04 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Short functions Lst, HSet, SSet, Dict, KV.html @@ -0,0 +1,32 @@ + + + + + + + + +

Lst, LLst, HSet, SSet, Dict, KV

+ + + + + + + + + + + +
function Dict<TKey, TVal>(params pairs: array of KeyValuePair<TKey, TVal>): Dictionary<TKey, TVal>; +
         (, )
function Dict<TKey, TVal>(params pairs: array of (TKey, TVal)): Dictionary<TKey, TVal>; +
         (, )
function HSet<T>(params a: array of T): HashSet<T>; +
         ,
function HSet<T>(a: sequence of T): HashSet<T>; +
         ,
function KV<TKey, TVal>(key: TKey; value: TVal): KeyValuePair<TKey, TVal>; +
         (, )
function LLst<T>(params a: array of T): LinkedList<T>; +
         ,
function LLst<T>(a: sequence of T): LinkedList<T>; +
         ,
function Lst<T>(params a: array of T): List<T>; +
         ,
function Lst<T>(a: sequence of T): List<T>; +
         ,
function SSet<T>(params a: array of T): SortedSet<T>; +
         ,
function SSet<T>(a: sequence of T): SortedSet<T>; +
         ,
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Standard constants.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Standard constants.html new file mode 100644 index 000000000..19b5611d1 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Standard constants.html @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + +
E = 2.718281828459045; +
         E
MaxByte = byte.MaxValue; +
         byte
MaxDouble = real.MaxValue; +
         double
MaxInt = integer.MaxValue; +
         integer
MaxInt64 = int64.MaxValue; +
         int64
MaxLongWord = longword.MaxValue; +
         longword
MaxReal = real.MaxValue; +
         real
MaxShortInt = shortint.MaxValue; +
         shortint
MaxSingle = single.MaxValue; +
         single
MaxSmallInt = smallint.MaxValue; +
         smallint
MaxUInt64 = uint64.MaxValue; +
         uint64
MaxWord = word.MaxValue; +
         word
MinDouble = real.Epsilon; +
         double
MinReal = real.Epsilon; +
         real
MinSingle = single.Epsilon; +
         single
NewLine = System.Environment.NewLine; +
        
Pi = 3.141592653589793; +
         Pi
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Standard types.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Standard types.html new file mode 100644 index 000000000..882f996ab --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Standard types.html @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Action<T> = System.Action<T>; +
        
Action0 = System.Action; +
        
Action2<T1, T2> = System.Action<T1, T2>; +
        
Action3<T1, T2, T3> = System.Action<T1, T2, T3>; +
        
BigInteger = System.Numerics.BigInteger; +
        
cardinal = System.UInt32; +
        cardinal = longword
Comparer<T> = System.Collections.Generic.Comparer<T>; +
         IComparer
Complex = System.Numerics.Complex; +
        
DateTime = System.DateTime; +
        
decimal = System.Decimal; +
         128-
Dictionary<Key, Value> = System.Collections.Generic.Dictionary<Key, Value>; +
         ( -), -
double = System.Double; +
        double = real
Encoding = System.Text.Encoding; +
        
Exception = System.Exception; +
        
Func<T, Res> = System.Func<T, Res>; +
        
Func0<Res> = System.Func<Res>; +
        
Func2<T1, T2, Res> = System.Func<T1, T2, Res>; +
        
Func3<T1, T2, T3, Res> = System.Func<T1, T2, T3, Res>; +
        
HashSet<T> = System.Collections.Generic.HashSet<T>; +
         , -
ICollection<T> = System.Collections.Generic.ICollection<T>; +
        
IComparable<T> = System.IComparable<T>; +
         IComparer
IComparer<T> = System.Collections.Generic.IComparer<T>; +
        
IDictionary<Key, Value> = System.Collections.Generic.IDictionary<Key, Value>; +
         -
IEnumerable<T> = System.Collections.Generic.IEnumerable<T>; +
         ,
IEnumerator<T> = System.Collections.Generic.IEnumerator<T>; +
        
IEqualityComparer<T> = System.Collections.Generic.IEqualityComparer<T>; +
        
IList<T> = System.Collections.Generic.IList<T>; +
        
IntFunc = Func<integer, integer>; +
         ,
ISet<T> = System.Collections.Generic.ISet<T>; +
        
KeyValuePair<Key, Value> = System.Collections.Generic.KeyValuePair<Key, Value>; +
         -
LinkedList<T> = System.Collections.Generic.LinkedList<T>; +
        
LinkedListNode<T> = System.Collections.Generic.LinkedListNode<T>; +
        
List<T> = System.Collections.Generic.List<T>; +
        
longint = System.Int32; +
        longint = integer
Match = System.Text.RegularExpressions.Match; +
        
MatchCollection = System.Text.RegularExpressions.MatchCollection; +
        
MatchEvaluator = System.Text.RegularExpressions.MatchEvaluator; +
         , Regex.Replace
Object = System.Object; +
        
Predicate<T> = System.Predicate<T>; +
         , boolean
Predicate2<T1, T2> = function(x1: T1; x2: T2): boolean; +
         , boolean
Predicate3<T1, T2, T3> = function(x1: T1; x2: T2; x3: T3): boolean; +
         , boolean
Queue<T> = System.Collections.Generic.Queue<T>; +
         - , " - "
RealFunc = Func<real, real>; +
         ,
Regex = System.Text.RegularExpressions.Regex; +
        
RegexGroup = System.Text.RegularExpressions.Group; +
         Regex.Match
RegexGroupCollection = System.Text.RegularExpressions.GroupCollection; +
         Regex.Match
RegexOptions = System.Text.RegularExpressions.RegexOptions; +
        
ShortString = string[255]; +
         255
SortedDictionary<Key, Value> = System.Collections.Generic.SortedDictionary<Key, Value>; +
         ,
SortedList<Key, Value> = System.Collections.Generic.SortedList<Key, Value>; +
         ( -),
SortedSet<T> = System.Collections.Generic.SortedSet<T>; +
         ,
Stack<T> = System.Collections.Generic.Stack<T>; +
         - , " - "
StringBuilder = System.Text.StringBuilder; +
        
StringFunc = Func<string, string>; +
         ,
Tuple = System.Tuple; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for array of T generation.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for array of T generation.html new file mode 100644 index 000000000..08b6b241b --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for array of T generation.html @@ -0,0 +1,45 @@ + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + +
function Arr<T>(params a: array of T): array of T; +
         ,
function Arr<T>(a: sequence of T): array of T; +
         ,
function ArrFill<T>(count: integer; x: T): array of T; +
         count x
function ArrGen<T>(count: integer; gen: integer->T): array of T; +
         count , gen(i)
function ArrGen<T>(count: integer; gen: integer->T; from: integer): array of T; +
         count , gen(i), i=from
function ArrGen<T>(count: integer; first: T; next: T->T): array of T; +
         count , first, next
function ArrGen<T>(count: integer; first, second: T; next: (T,T) ->T): array of T; +
         count , first second, next
function ArrRandom(n: integer := 10; a: integer := 0; b: integer := 100): array of integer; +
         n,
function ArrRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): array of integer; +
         n,
function ArrRandomReal(n: integer := 10; a: real := 0; b: real := 10): array of real; +
         n,
function ReadArrInteger(n: integer): array of integer; +
         n ,
function ReadArrInteger(prompt: string; n: integer): array of integer; +
         n ,
function ReadArrReal(n: integer): array of real; +
         n ,
function ReadArrReal(prompt: string; n: integer): array of real; +
         n ,
function ReadArrString(n: integer): array of string; +
         n ,
function ReadArrString(prompt: string; n: integer): array of string; +
         n ,
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for array of T.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for array of T.html new file mode 100644 index 000000000..87b7e163c --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for array of T.html @@ -0,0 +1,50 @@ + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + +
function Copy(a: array of T): array of T; +
        
function High(a: array of T): integer; +
        
function Length(a: array of T): integer; +
        
function Length(a: array of T; dim: integer): integer; +
         dim
function Low(a: array of T): integer; +
         0
procedure Reverse<T>(a: array of T); +
        
procedure Reverse<T>(a: array of T; index, count: integer); +
         count, index
procedure Reverse<T>(a: List<T>); +
        
procedure Reverse<T>(a: List<T>; index, count: integer); +
         count, index
procedure SetLength(var a: array of T); +
         .
procedure SetLength(var a: array of T; n1,n2,...: integer); +
         n- .
procedure Shuffle<T>(a: array of T); +
        
procedure Shuffle<T>(l: List<T>); +
        
procedure Sort<T>(a: array of T); +
        
procedure Sort<T>(a: array of T; cmp: (T,T)->integer); +
         , cmp
procedure Sort<T>(a: array of T; less: (T,T)->boolean); +
         , less
procedure Sort<T>(l: List<T>); +
        
procedure Sort<T>(l: List<T>; cmp: (T,T)->integer); +
         , cmp
procedure Sort<T>(l: List<T>; less: (T,T)->boolean); +
         , less
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for binary files.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for binary files.html new file mode 100644 index 000000000..a3d4a28c9 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for binary files.html @@ -0,0 +1,26 @@ + + + + + + + + +

+ + + + + + + + +
function FilePos(f: ): int64; +
        
function FileSize(f: ): int64; +
        
procedure Reset(f: ); +
         . - file of T, file
procedure Reset(f: ; name: string); +
         f name . - file of T, file
procedure Rewrite(f: ); +
         , . , . - file of T, file
procedure Rewrite(f: ; name: string); +
         f name , . - file of T, file
procedure Seek(f: ; n: int64); +
        
procedure Truncate(f: ); +
         , . - file of T, file
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for char.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for char.html new file mode 100644 index 000000000..ff0a96f19 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for char.html @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + +
function Chr(a: word): char; +
         Unicode
function ChrAnsi(a: byte): char; +
         Windows
function ChrUnicode(a: word): char; +
         Unicode
procedure Dec(var c: char); +
         c 1
procedure Dec(var c: char; n: integer); +
         c n
procedure Inc(var c: char); +
         c 1
procedure Inc(var c: char; n: integer); +
         c n
function LowCase(ch: char): char; +
        
function LowerCase(ch: char): char; +
        
function Ord(a: char): word; +
         Unicode
function OrdAnsi(a: char): byte; +
         Windows
function OrdUnicode(a: char): word; +
         Unicode
function Pred(x: char): char; +
         x
function Succ(x: char): char; +
         x
function UpCase(ch: char): char; +
        
function UpperCase(ch: char): char; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for matrix generation.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for matrix generation.html new file mode 100644 index 000000000..bba4bf078 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for matrix generation.html @@ -0,0 +1,19 @@ + + + + + + + +

+ + + + + +
function MatrFill<T>(m,n: integer; x: T): array [,] of T; +
         m x n, x
function MatrGen<T>(m,n: integer; gen: (integer,integer)->T): array [,] of T; +
         m x n, x
function MatrRandom(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +
         m x n,
function MatrRandomInteger(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +
         m x n,
function MatrRandomReal(m: integer := 5; n: integer := 5; a: real := 0; b: real := 10): array [,] of real; +
         m x n,
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for matrixes.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for matrixes.html new file mode 100644 index 000000000..99c929edf --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for matrixes.html @@ -0,0 +1,31 @@ + + + + + + + + + + + +

+ + + + + + + + + +
function Matr<T>(m,n: integer; params data: array of T): array [,] of T; +
         m x n,
function MatrFill<T>(m, n: integer; x: T): array [,] of T; +
         m x n, x
function MatrGen<T>(m, n: integer; gen: (integer,integer)->T): array [,] of T; +
         m x n, x
function MatrRandom(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +
         m x n,
function MatrRandomInteger(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +
         m x n,
function MatrRandomReal(m: integer := 5; n: integer := 5; a: real := 0; b: real := 10): array [,] of real; +
         m x n,
function ReadMatrInteger(m, n: integer): array [,] of integer; +
         m n ,
function ReadMatrReal(m, n: integer): array [,] of real; +
         m n ,
function Transpose<T>(a: array [,] of T): array [,] of T; +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for sequence generation.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for sequence generation.html new file mode 100644 index 000000000..5684049fc --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for sequence generation.html @@ -0,0 +1,75 @@ + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
function Partition(a, b: real; n: integer): sequence of real; +
         [a,b] n
function Range(a, b: integer): sequence of integer; +
         a b
function Range(c1, c2: char): sequence of char; +
         c1 c2
function Range(a, b: real; n: integer): sequence of real; +
         [a,b] n ( Partition)
function Range(a, b, step: integer): sequence of integer; +
         a b step
function ReadSeqInteger(n: integer): sequence of integer; +
         n ,
function ReadSeqInteger(prompt: string; n: integer): sequence of integer; +
         n ,
function ReadSeqIntegerWhile(cond: integer->boolean): sequence of integer; +
         ,
function ReadSeqIntegerWhile(prompt: string; cond: integer->boolean): sequence of integer; +
         ,
function ReadSeqReal(n: integer): sequence of real; +
         n ,
function ReadSeqReal(prompt: string; n: integer): sequence of real; +
         n ,
function ReadSeqRealWhile(cond: real->boolean): sequence of real; +
         ,
function ReadSeqRealWhile(prompt: string; cond: real->boolean): sequence of real; +
         ,
function ReadSeqString(n: integer): sequence of string; +
         n ,
function ReadSeqString(prompt: string; n: integer): sequence of string; +
         n ,
function ReadSeqStringWhile(cond: string->boolean): sequence of string; +
         ,
function ReadSeqStringWhile(prompt: string; cond: string->boolean): sequence of string; +
         ,
function Seq<T>(params a: array of T): sequence of T; +
        
function SeqFill<T>(count: integer; x: T): sequence of T; +
         count x
function SeqGen<T>(count: integer; f: integer->T): sequence of T; +
         count , f(i)
function SeqGen<T>(count: integer; f: integer->T; from: integer): sequence of T; +
         count , f(i), i=from
function SeqGen<T>(count: integer; first: T; next: T->T): sequence of T; +
         count , first, next
function SeqGen<T>(count: integer; first, second: T; next: (T,T) ->T): sequence of T; +
         count , first second, next
function SeqRandom(n: integer := 10; a: integer := 0; b: integer := 100): sequence of integer; +
         n
function SeqRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): sequence of integer; +
         n
function SeqRandomReal(n: integer := 10; a: real := 0; b: real := 10): sequence of real; +
         n
function SeqWhile<T>(first: T; next: T->T; pred: T->boolean): sequence of T; +
         first, next pred
function SeqWhile<T>(first, second: T; next: (T,T) ->T; pred: T->boolean): sequence of T; +
         , first second, next pred
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for set of T.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for set of T.html new file mode 100644 index 000000000..e4b4e4a6b --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for set of T.html @@ -0,0 +1,10 @@ + + + + +

+ + +
procedure Exclude(var s: set of T; element: T); +
         element s
procedure Include(var s: set of T; element: T); +
         element s
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for string.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for string.html new file mode 100644 index 000000000..571cb81d8 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for string.html @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
function CompareStr(s1, s2: string): integer; +
         . < 0 s1<s2, > 0 s1>s2 = 0 s1=s2
function Concat(s1,s2,...): string; +
         , s1,s2,...
function Concat(s1, s2: string): string; +
         , s1 s2
function Copy(s: string; index, count: integer): string; +
         s count index
procedure Delete(var s: string; index, count: integer); +
         s count index
function FloatToStr(a: real): string; +
        
function Format(formatstring: string; params pars: array of object): string; +
         ,
procedure Insert(source: string; var s: string; index: integer); +
         source s index
function IntToStr(a: integer): string; +
        
function IntToStr(a: int64): string; +
        
function LastPos(subs, s: string): integer; +
         subs s. , 0
function LastPos(subs, s: string; from: integer): integer; +
         subs s from. , 0
function LeftStr(s: string; count: integer): string; +
         count s
function Length(s: string): integer; +
        
function LowerCase(s: string): string; +
        
function Pos(subs, s: string; from: integer := 1): integer; +
         subs s. , 0
function PosEx(subs, s: string; from: integer := 1): integer; +
         subs s from. , 0
function ReadIntegerFromString(s: string; var from: integer): integer; +
         from from
function ReadRealFromString(s: string; var from: integer): real; +
         from from
function ReadWordFromString(s: string; var from: integer): string; +
         from from
function ReverseString(s: string): string; +
        
function ReverseString(s: string; index,length: integer): string; +
         length index
function RightStr(s: string; count: integer): string; +
         count s
procedure SetLength(var s: string; n: integer); +
         s n
procedure Str(i: ; var s: string); +
         i s
procedure Str(r: real; var s: string); +
         r s
procedure Str(r: single; var s: string); +
         r s
function StringIsEmpty(s: string; var from: integer): boolean; +
         True False
function StringOfChar(ch: char; count: integer): string; +
         , count ch
function StrToFloat(s: string): real; +
        
function StrToInt(s: string): integer; +
        
function StrToInt64(s: string): int64; +
        
function StrToReal(s: string): real; +
        
function Trim(s: string): string; +
        
function TrimLeft(s: string): string; +
        
function TrimRight(s: string): string; +
        
function TryReadIntegerFromString(s: string; var from: integer; var res: integer): boolean; +
         from from . True False
function TryReadRealFromString(s: string; var from: integer; var res: real): boolean; +
         from from . True False
function TryStrToFloat(s: string; var value: real): boolean; +
         s value. False
function TryStrToFloat(s: string; var value: single): boolean; +
         s value. False
function TryStrToInt(s: string; var value: integer): boolean; +
         s value. False
function TryStrToInt64(s: string; var value: int64): boolean; +
         s value. False
function TryStrToReal(s: string; var value: real): boolean; +
         s value. False
function TryStrToSingle(s: string; var value: single): boolean; +
         s value. False
function UpperCase(s: string): string; +
        
procedure Val(s: string; var value: ; var err: integer); +
         s value. , err=0, err>0
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for text files.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for text files.html new file mode 100644 index 000000000..4e9693506 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for text files.html @@ -0,0 +1,88 @@ + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
procedure Append(f: Text); +
         Windows
procedure Append(f: Text; en: Encoding); +
        
procedure Append(f: Text; name: string); +
         f name Windows
procedure Append(f: Text; name: string; en: Encoding); +
         f name
function Eoln(f: Text): boolean; +
         True,
procedure Flush(f: Text); +
        
function OpenAppend(fname: string): Text; +
         fname, Windows
function OpenAppend(fname: string; en: Encoding): Text; +
         fname,
function OpenRead(fname: string): Text; +
         fname, Windows
function OpenRead(fname: string; en: Encoding): Text; +
         fname,
function OpenWrite(fname: string): Text; +
         fname, Windows
function OpenWrite(fname: string; en: Encoding): Text; +
         fname,
function ReadAllLines(path: string): array of string; +
         , Windows ,
function ReadAllLines(path: string; en: Encoding): array of string; +
         , ,
function ReadAllText(path: string): string; +
         , Windows ,
function ReadAllText(path: string; en: Encoding): string; +
         , ,
function ReadLines(path: string): sequence of string; +
         , Windows .
function ReadLines(path: string; en: Encoding): sequence of string; +
         , .
procedure Reset(f: Text); +
         Windows
procedure Reset(f: Text; en: Encoding); +
        
procedure Reset(f: Text; name: string); +
         f name Windows
procedure Reset(f: Text; name: string; en: Encoding); +
         f name
procedure Rewrite(f: Text); +
         Windows. - , -
procedure Rewrite(f: Text; en: Encoding); +
         . - , -
procedure Rewrite(f: Text; name: string); +
         name f Windows. - , -
procedure Rewrite(f: Text; name: string; en: Encoding); +
         f name f . - , -
function SeekEof(f: Text): boolean; +
         , True,
function SeekEoln(f: Text): boolean; +
         , True,
procedure WriteAllLines(path: string; ss: array of string); +
         , Windows,
procedure WriteAllLines(path: string; ss: array of string; en: Encoding); +
         , ,
procedure WriteAllText(path: string; s: string); +
         , Windows,
procedure WriteAllText(path: string; s: string; en: Encoding); +
         , ,
procedure WriteLines(path: string; ss: sequence of string); +
         , Windows,
procedure WriteLines(path: string; ss: sequence of string; en: Encoding); +
         , ,
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for tuple generation.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for tuple generation.html new file mode 100644 index 000000000..6e6b2077a --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for tuple generation.html @@ -0,0 +1,7 @@ + + + +

+ +
function Rec(x1: T1, x2: T2,...): (T1,T2,...); +
        
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for typed files.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for typed files.html new file mode 100644 index 000000000..515173521 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Subroutines for typed files.html @@ -0,0 +1,31 @@ + + + + + + + + + + + +

+ + + + + + + + + +
function CreateBinary<T>(fname: string): file of T; +
        
function CreateFile<T>(fname: string): file of T; +
        
function CreateFileInteger(fname: string): file of integer; +
        
function CreateFileReal(fname: string): file of real; +
        
function OpenBinary<T>(fname: string): file of T; +
        
function OpenFile<T>(fname: string): file of T; +
        
function OpenFileInteger(fname: string): file of integer; +
        
function OpenFileReal(fname: string): file of real; +
        
procedure WriteElements<T>(fname: string; ss: sequence of T); +
         ,
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/System subroutines.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/System subroutines.html new file mode 100644 index 000000000..f8f04b542 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/System subroutines.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

C

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
procedure Assert(cond: boolean; sourceFile: string := ''; line: integer := 0); +
        
procedure Assert(cond: boolean; message: string; sourceFile: string := ''; line: integer := 0); +
        
function ChangeFileNameExtension(name, newext: string): string; +
         name newext
procedure ChDir(s: string); +
        
function CreateDir(s: string): boolean; +
         . True,
function DeleteFile(s: string): boolean; +
         . , False
function DiskFree(diskname: string): int64; +
         diskname
function DiskFree(disk: integer): int64; +
         disk. disk=0 - , disk=1 - A: , disk=2 - B: ..
function DiskSize(diskname: string): int64; +
         diskname
function DiskSize(disk: integer): int64; +
         disk. disk=0 - , disk=1 - A: , disk=2 - B: ..
procedure Dispose<T>(var p: ^T); +
         , p
function EnumerateAllDirectories(path: string): sequence of string; +
         ,
function EnumerateAllFiles(path: string; searchPattern: string := '*.*'): sequence of string; +
         , ,
function EnumerateDirectories(path: string): sequence of string; +
        
function EnumerateFiles(path: string; searchPattern: string := '*.*'): sequence of string; +
         ,
procedure Exec(filename: string); +
         filename
procedure Exec(filename: string; args: string); +
         filename args
procedure Execute(filename: string); +
         filename
procedure Execute(filename: string; args: string); +
         filename args
function FileExists(name: string): boolean; +
         True, name
function GetCurrentDir: string; +
        
function GetDir: string; +
        
function GetEXEFileName: string; +
         .exe-
procedure Halt(exitCode: integer); +
         , exitCode
procedure Halt; +
        
function Milliseconds: integer; +
        
function MillisecondsDelta: integer; +
         Milliseconds MillisecondsDelta
procedure MkDir(s: string); +
        
procedure New<T>(var p: ^T); +
         sizeof(T) p . T
function ParamCount: integer; +
        
function ParamStr(i: integer): string; +
         i-
function PascalABCVersion: string; +
         PascalABC.NET
function PointerToString(p: pointer): string; +
        
function RemoveDir(s: string): boolean; +
         . True,
function RenameFile(name, newname: string): boolean; +
         name, newname. True,
procedure RmDir(s: string); +
        
function SetCurrentDir(s: string): boolean; +
         . True,
procedure Sleep(ms: integer); +
         ms
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Write subroutines.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Write subroutines.html new file mode 100644 index 000000000..c96788624 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Write subroutines.html @@ -0,0 +1,34 @@ + + + + + + + + +

+ + + + + + + + + + + + +
procedure Print(a,b,...); +
         a,b,... ,
procedure Print(f: Text; a,b,...); +
         a,b,... f,
procedure Println(a,b,...); +
         a,b,... ,
procedure Println(f: Text; a,b,...); +
         a,b,... f,
procedure Write(a,b,...); +
         a,b,...
procedure Write(f: ; a,b,...); +
         a,b,... f
procedure WriteFormat(formatstr: string; params args: array of object); +
         args formatstr
procedure WriteFormat(f: Text; formatstr: string; params args: array of object); +
         args f formatstr
procedure Writeln(a,b,...); +
         a,b,...
procedure Writeln(f: Text; a,b,...); +
         a,b,... f
procedure WritelnFormat(formatstr: string; params args: array of object); +
         args formatstr
procedure WritelnFormat(f: Text; formatstr: string; params args: array of object); +
         args f formatstr
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/XXX.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/XXX.html new file mode 100644 index 000000000..111874867 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/XXX.html @@ -0,0 +1,41 @@ + + + + + + + + + + + +

XXX - !

+ + + + + + + + + + + + + + +
begin +
        ction TakeGroup: sequence of T;
begin +
        le fin do
begin +
        e
break; +
        := enm.Current;
end; +
        := enm.Current;
end; +
        ;
enm: IEnumerator<T>; +
        : T;
enm := a.GetEnumerator(); +
        in
fin := enm.movenext; +
        ld cur;
fin := enm.movenext; +
        ;
if fin then +
        := enm.MoveNext;
private +
        GroupClass<T> = class
public +
        : boolean;
yield enm.current +
        enm.current = cur then
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/YYY.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/YYY.html new file mode 100644 index 000000000..98674cc23 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/YYY.html @@ -0,0 +1,16 @@ + + + + + + +

YYY - !

+ + + + +
function MatrGen<T>(m, n: integer; gen: (integer,integer)->T): array [,] of T; +
        ction MatrFill<T>(m, n: integer; x: T): array [,] of T;
function MatrRandom(m: integer; n: integer; a, b: integer): array [,] of integer; +
        ction Matr<T>(m,n: integer; params data: array of T): array [,] of T;
function MatrRandomReal(m: integer; n: integer; a, b: real): array [,] of real; +
        ction MatrRandomInteger(m: integer; n: integer; a, b: integer): array [,] of integer;
function ReadMatrInteger(m, n: integer): array [,] of integer; +
        ction Transpose<T>(a: array [,] of T): array [,] of T;
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Вспомогательные функции для pattern matching.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Вспомогательные функции для pattern matching.html new file mode 100644 index 000000000..dfa4c8440 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Вспомогательные функции для pattern matching.html @@ -0,0 +1,5 @@ + + + +

pattern matching

+
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Метод расширения Print для элементарных типов.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Метод расширения Print для элементарных типов.html new file mode 100644 index 000000000..835f8c4b1 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Files/Метод расширения Print для элементарных типов.html @@ -0,0 +1,16 @@ + + + + +

Print

+ + + + + +
function Print(Self: real): real; extensionmethod; +
        ction Print(Self: integer): integer; extensionmethod;
function Print(Self: boolean): boolean; extensionmethod; +
        ction Print(Self: char): char; extensionmethod;
function Println(Self: integer): integer; extensionmethod; +
        ction Print(Self: BigInteger): BigInteger; extensionmethod;
function Println(Self: char): char; extensionmethod; +
        ction Println(Self: real): real; extensionmethod;
function Println(Self: BigInteger): BigInteger; extensionmethod; +
        ction Println(Self: boolean): boolean; extensionmethod;
\ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old/common.htm b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/common.htm new file mode 100644 index 000000000..4a571fff3 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/common.htm @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Read(a,b,...)a,b,c - + string  a, + b + ...
+Write(a,b,...)a,b,c - + , string   a, + b + ...
+Readln(a,b,...)a,b,c - + string  a, + b + ..., + . + , + Enter
+Writeln(a,b,...)a,b,c - + , string   a, + b + ... . + , + .
+Abs(x)x - integer, real, complex () x
+ Sqr(x) x - integer, real, complex x
+ Sqrt(x) x - real, complex x
+ Sin(x) x - real, complex x
+ Cos(x) x - real, complex x
+ Ln(x) x - real, complex x
+ Exp(x) x - real, complex e + x (e=2.718281...) +
+ Arctan(x) x - real, complex x
+ Power(x,y) x, y - real real x + y
+ Round(x) x - realinteger x
+ Trunc(x) x - realinteger
+ Int(x) x - realreal
+ Frac(x) x - realreal
+ Ord(x) x - integer
+ Chr(x) x - integerchar
+ Odd(x)x - integerboolean True, - , + False
+ Inc(x) x -   x 1
+ Dec(x) x -   x 1
+ Inc(x,n) + x - , +
+ n
-
  x + n
+ Dec(x,n) + x - , +
+ n
-
  x + n
+ Pred(x) x -
+ Succ(x) x -
+ Random(x)x - integerinteger + 0 x-1
+ Random  real + [0..1)
+ Include(s,x) s - , x - , +   x s
+ Exclude(s,x)s - , x - , +   x s
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old/consts.htm b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/consts.htm new file mode 100644 index 000000000..c2d960d7f --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/consts.htm @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Pireal3.14159265358979
+ MaxIntinteger + integer: 2147483647
+ MaxRealreal + real: 1.7E308
+ MinRealreal + real: 4.94065645841247E-324
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old/file.htm b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/file.htm new file mode 100644 index 000000000..9778c08ac --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/file.htm @@ -0,0 +1,297 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Assign(f,name) f - + , + name - string  + f name
+ Reset(f) f - +   , + f Assign. , + . + , -
+ Rewrite(f) f - +   , + f + Assign. , + , . + , -
+ Append(f) f - + Text  . + .
+ Close(f) f - +  
+ FileExists(name) name - + stringboolean True, + name, + False
+ CanCreateFile(name) name - + stringboolean True, + name, + False
+Read(f,a,b,...) f - + , a,b - + , string   f a, + b + ... , + a, + b + ... , + . , a, + b + ... , +  
+Write(f,a,b,...) f - + , a,b - + , string   a, + b + ... f. + , a, + b + ... + . , + a, + b + ... , +
+Readln(f,a,b,...) f - + Text, a,b - + , string   + f a, + b + ..., . + readln(f) +
+Writeln(f,a,b,...) f - + Text, a,b - + , string   a, + b + ... + f, . a, + b + ... , + . writeln(f) +
+ Eof(f) f - + boolean True, + , False +
+ Eoln(f) f - + Textboolean True, + , False +
+ SeekEof(f) f - + Textboolean , + , True, + , False +
+ SeekEoln(f) f - + Textboolean , , + True, + , False +
+ FileSize(f)  f - + fileinteger
+ FilePos(f) f - + fileinteger + ( )
+ Seek(f,n) f - + file  + n- ( )
+ Truncate(f) f - + file  +
+ Rename(f,name) f - + , + name - string  , + + f.
+ Erase(f) f - +   , + f.
+ + + diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old/memory.htm b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/memory.htm new file mode 100644 index 000000000..d848622ab --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/memory.htm @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+New(p) p - + , + , p, + p
+ Dispose(p) p - + p, + New
+ GetMem(p,n) p - + , + n - integer n + + p
+ FreeMem(p) p - + p, + GetMem
+ FillMem(v,count,x)v - , + count - integer,
+ x
- byte
count + x , v. +
+ CopyMem(src,dest,count)src, dest - + pointer, count - integer count + , src, + , dest. + .
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old/readwrite.htm b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/readwrite.htm new file mode 100644 index 000000000..8767d4b28 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/readwrite.htm @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + +

.

+

write writeln. , + . + ( , + ), string, . + writeln + .

+

write writeln + , + , +. , + , . + , + ; + . , + . + :m + .

+

, a, b - +,

+
+ a:=-2437; b:=13555;
+ writeln(a:6,'!':9);
+ writeln(b:1);
+
+ :

 -2437  !
+13555

+

+:m:n, m n - . m , + n  . +:

+
+ writeln(-14.859:10:3); // ___-14.859
+ writeln(-14.859:10:5); // _-14.85900
+ writeln(-14.859:10:2); // ____-14.86
+ writeln(-14.859:10:0); // _______-15
+ writeln(-14.859:10:7); // -14.8590000
+ writeln((0,1):10:1);   // _(0.0,1.0)
+

( _ ).

+

+ read readln. + , . + + ( , + ), string. + readln + .

+

write, writeln, +read, readln +- , + .

+

- , + :

+
+

writeln(f,'abc',1,True,2.4);

+
+ + + diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old/string.htm b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/string.htm new file mode 100644 index 000000000..3c14f22d1 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/string.htm @@ -0,0 +1,267 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+Length(s) s - stringinteger s
+ Copy(s,index,count) s - string, + index count - + integerstring + s count, + index
+ Delete(s,index,count) s - string, + index count - + integer  + s count + index
+ Insert(subs,s,index) s, + subs - string, + index - integer  + subs + s index
+ Pos(subs,s) s, + subs - stringinteger + subs s + ( 0 )
+ SetLength(s,n) s - string, + n - integer  + s n
+ Str(x,s)
+ Str(x:n,s)
+ Str(x:n:m,s)
s - string, + x - integer, + real + n, + m - integer  x + ( , + + n + m) + s
+ Val(s,v,code)s - string, + v - integer, + real, code - + integer  s + + v. , + code 0, + , code +
+ Concat(s1,...,sn) s1,..., sn - stringstring , + s1,..., sn. + , s1+s2+...+sn
+ IntToStr(i) i - integerstring
+ StrToInt(s) s - stringinteger . + ,
+ FloatToStr(r) r - realstring
+ StrToFloat(s) s - stringreal . + ,
+ UpCase(c) + c - + charchar c, +
+ LowCase(c) + c - + charchar c, +
+ UpperCase(s) + s - string string + s,
+ LowerCase(s) + s - string string s, +
+ Trim(s) + s - string string s +
+ TrimLeft(s) + s - string string s +  
+ TrimRight(s) + s - string string s +
+


+
+
+
+

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old/system.htm b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/system.htm new file mode 100644 index 000000000..3e52947b8 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old/system.htm @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Sleep(ms) ms - integer  + ms
+ Cls  
+ Halt(n)n - integer  . + " + Halt(n)"
+ Halt   +
+ Assert(b)b - boolean  b=False, + EAssertionFailed. +
+ Assert(b,mess)b - boolean, + mess - string  b=False, + EAssertionFailed + mess. + .
+
+
+
+
+ + + diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/_main_old.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/_main_old.html new file mode 100644 index 000000000..0a56933b2 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/_main_old.html @@ -0,0 +1,44 @@ + + + + + + + + + + + + + +

PABCSystem

+

PABCSystem + . +, , , .

+ + + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_common.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_common.html new file mode 100644 index 000000000..dac00904f --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_common.html @@ -0,0 +1,179 @@ + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+procedure Swap<T>(var a, b: T);
+         
+ + function Milliseconds: integer;
+        
+ + function MillisecondsDelta: integer;
+         + + + Milliseconds + + MillisecondsDelta.
+ + function Rec<T1,T2,...>(x1: T1; x2: T2, ...): Tuple<T1,T2,...>;
+          Tuple . + Item1, Item2 .. + x1,x2,... - 2 6.
+ function Dict<TKey, TVal>(params pairs: + array of KeyValuePair<TKey, TVal>): Dictionary<TKey, TVal>; +
+         
+ function KV<TKey, TVal>(key: TKey; value: TVal): + KeyValuePair<TKey, TVal>;
+          Dict
+ +procedure Assert(cond: boolean); +
+         +
+ +procedure Assert(cond: boolean; mes: string); +
+         mes +
+ + procedure Sleep(ms: integer); +
+         ms +
+ +procedure Halt; +
+         +
+ +procedure Halt(exitCode: integer); +
+         , exitCode +
+ +procedure Exec(filename: string); +
+         filename +
+ +procedure Exec(filename: string; args: string); +
+         filename + args
+ +procedure Execute(filename: string); +
+         filename +
+ +procedure Execute(filename: string; args: +string); +
+         filename + args
+ +function ParamCount: integer; +
+         +
+ +function ParamStr(i: integer): string; +
+         i- +
+procedure New<T>(var p: ^T);
+         sizeof(T) p . + T
+procedure Dispose<T>(var p: ^T); +
+         , +p
+ +function GetEXEFileName: string; +
+         .exe- +
+ +function PointerToString(p: pointer): string; +
+         +
+ \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_const.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_const.html new file mode 100644 index 000000000..84fe8e4ed --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_const.html @@ -0,0 +1,146 @@ + + + + + + + + + + + + + + + + + + + + + + + + +

+

+ + + + + + + + + + + + + + + + + + + + +
+ + MaxShortInt = shortint.MaxValue; +
+         shortint +
+ + MaxByte = byte.MaxValue; +
+         byte +
+ + MaxSmallInt = smallint.MaxValue; +
+         smallint +
+ + MaxWord = word.MaxValue; +
+         word +
+ + MaxInt = integer.MaxValue; +
+         integer +
+ + MaxLongWord = longword.MaxValue; +
+         longword +
+ + MaxInt64 = int64.MaxValue; +
+         int64 +
+ + MaxUInt64 = uint64.MaxValue; +
+         uint64 +
+ + MaxDouble = real.MaxValue; +
+         double +
+ + MinDouble = real.Epsilon; +
+         double +
+ + MaxReal = real.MaxValue; +
+         real +
+ + MinReal = real.Epsilon; +
+         real +
+ + MaxSingle = single.MaxValue; +
+         single +
+ + MinSingle = single.Epsilon; +
+         single +
+ + Pi = 3.141592653589793; +
+         Pi +
+ + E = 2.718281828459045; +
+         E +
+ NewLine: string;
+          +
+

+ + + + + +
+ output
+          . + , Assign +
+ input
+          . , + Assign +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_dynarray.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_dynarray.html new file mode 100644 index 000000000..e3d946a9f --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_dynarray.html @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+function Length(a: +System.Array): integer;
+        
+function Length(a: +System.Array; m: integer): integer;
+         +m- ( + )
+procedure SetLength(var a: +System.Array; n: integer);
+         . + . a + .
+procedure SetLength(var a: +System.Array; n1,n2,...: integer);
+         + n- . +. a +.
+ +function Copy(a: +System.Array): System.Array; +
+        
+ function Low(a: System.Array): integer;
+          ( - 0)
+ function High(a: System.Array): integer;
+          ( - + 0)
+ procedure Sort<T>(a: array of T); +
+          +
+ procedure Reverse<T>(a: array of T); +
+          +
+ procedure Reverse<T>(a: array of T; + index,length: integer);
+          + length index +
+ function Arr<T>(params a: + array of T): array of T;
+          ,
+ function ArrGen<T>(count: integer; first: T; next: T->T): array of T;
+          count , first, + next
+ function ArrGen<T>(count: integer; first,second: T; next: + (T,T)->T): array of T;
+          count , first second, + next
+ function ArrGen<T>(count: integer; f: + integer->T): array of T;
+          count , f(i)
+ function ArrFill<T>(count: integer; x: T): + array of T;
+          count x
+ function ArrRandom(n: integer := 10; a: integer := 0; + b: integer := 100): array of integer;
+          n, +
+ function ArrRandomInteger(n: integer := 10; a: integer := 0; + b: integer := 100): array of integer;
+          n, +
+ function ArrRandomReal(n: integer := 10; a: real := + 0; b: real := 10): array of real;
+          n, +
+ function MatrixRandom(m: integer := 5; n: integer := + 5; a: integer := 0; b: integer := 100): array [,] + of integer;
+          m x n, +
+ function MatrixRandomReal(m: integer := 5; n: integer + := 5; a: integer := 0; b: integer := 10): array [,] + of real;
+          m x n, +
+ function ReadArrInteger(n: integer): array of + integer;
+          n ,
+ function ReadArrInteger(const + prompt: string; n: integer): array of integer;
+          n , +
+ function ReadArrReal(n: integer): array of + real;
+          n ,
+ function ReadArrReal(const prompt: string; n: + integer): array of real;
+          n , +
+ function ReadArrString(n: integer): array of + string;
+          n ,
+ function ReadArrString(const prompt: + string; n: integer): array of string;
+          n , +
+ \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_enum.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_enum.html new file mode 100644 index 000000000..94e948698 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_enum.html @@ -0,0 +1,322 @@ + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +procedure Inc(var i: integer); +
+         +i 1 +
+ +procedure Inc(var i: integer; n: integer); +
+         +i n +
+ +procedure Dec(var i: integer); +
+         +i 1 +
+ +procedure Dec(var i: integer; n: integer); +
+         +i n +
+ +procedure Inc(var c: char); +
+         c 1 +
+ +procedure Inc(var c: char; n: integer); +
+         c +n +
+ +procedure Dec(var c: char); +
+         c 1 +
+ +procedure Dec(var c: char; n: integer); +
+         c +n +
+ +procedure Inc(var e: +System.Enum); +
+         + e 1 +
+ +procedure Inc(var e: +System.Enum; n: integer); +
+         e + n +
+ +procedure Dec(var e: +System.Enum); +
+         e 1 +
+ +procedure Dec(var e: +System.Enum; n: integer); +
+         e 1 +
+ +function Succ(x: integer): integer; +
+         x +
+ +function Succ(x: boolean): boolean; +
+         x +
+ +function Succ(x: byte): byte; +
+         x +
+ +function Succ(x: shortint): shortint; +
+         x +
+ +function Succ(x: smallint): smallint; +
+         x +
+ +function Succ(x: word): word; +
+         x +
+ +function Succ(x: longword): longword; +
+         x +
+ +function Succ(x: int64): int64; +
+         x +
+ +function Succ(x: uint64): uint64; +
+         x +
+ +function Succ(x: char): char; +
+         x +
+ +function Succ(e: +System.Enum): System.Enum; +
+         +e +
+ +function Pred(x: boolean): boolean; +
+         x +
+ +function Pred(x: byte): byte; +
+         x +
+ +function Pred(x: shortint): shortint; +
+         x +
+ +function Pred(x: smallint): smallint; +
+         x +
+ +function Pred(x: word): word; +
+         x +
+ +function Pred(x: integer): integer; +
+         x +
+ +function Pred(x: longword): longword; +
+         x +
+ +function Pred(x: int64): int64; +
+         x +
+ +function Pred(x: uint64): uint64; +
+         x +
+ +function Pred(x: char): char; +
+         x +
+ +function Pred(e: System.Enum): +System.Enum;  +
+         + +e +
+ +function Odd(i: integer): boolean; +
+         True, i +
+ +function Odd(i: longword): boolean; +
+         True, i +
+ +function Odd(i: int64): boolean; +
+         True, i +
+ +function Odd(i: uint64): boolean; +
+         True, i +
+ +function Ord(a: char): byte; +
+         
+ +function Ord(a: integer): integer; +
+         +a +
+ +function Ord(a: longword): longword; +
+         +a +
+ +function Ord(a: int64): int64; +
+         +a +
+ +function Ord(a: uint64): uint64; +
+         +a +
+ +function Ord(a: boolean): integer; +
+         +a +
+ +function Ord(e: System.Enum): integer; +
+         + +e +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_file.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_file.html new file mode 100644 index 000000000..1729f2b63 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_file.html @@ -0,0 +1,211 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +procedure Assign(f: FileType; name: string); +
+         f name +
+ +procedure AssignFile(f: FileType; name: string); +
+         f name +
+ +procedure Reset(f: Text); +
+         f +
+ +procedure Reset(f: file of T); +
+         f +
+ +procedure Reset(f: file); +
+         f +
+ +procedure Rewrite(f: Text); +
+         f , . , +
+ +procedure Rewrite(f: file of T); +
+         f , . , +
+ +procedure Rewrite(f: file); +
+         f , . , +
+ + procedure Append(f: Text); +
+         f +
+ +function OpenRead(fname: string): Text; +
+          fname, +
+ +function OpenWrite(fname: string): Text;
+          fname, +
+ +function OpenAppend(fname: string): Text;
+          fname,
+ + procedure Close(f: FileType); +
+         f +
+ + procedure CloseFile(f: FileType); +
+         f +
+ +function Eof(f: FileType): boolean; +
+         True, f +
+ +procedure Flush(f: FileType); +
+         +
+ +procedure Erase(f: FileType); +
+         , f +
+ +procedure Rename(f: FileType; newname: string); +
+         , f, newname +
+ +function Eoln(f: Text): boolean; +
+         True, f +
+ +function SeekEof(f: Text): boolean; +
+         , True, f +
+ +function SeekEoln(f: Text): boolean; +
+         , True, f +
+ +procedure Truncate(f: file of T); +
+         f, +
+ +procedure Truncate(f: file); +
+         f, +
+ +function FilePos(f: file of T): int64; +
+         f +
+ +function FilePos(f: file): int64; +
+         f +
+ +function FileSize(f: file of T): int64; +
+         f +
+ +function FileSize(f: file): int64; +
+         f +
+ +procedure Seek(f: file of T; n: int64); +
+         f n +
+ +procedure Seek(f: file; n: int64); +
+         f n +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_file_name.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_file_name.html new file mode 100644 index 000000000..94fa5520e --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_file_name.html @@ -0,0 +1,51 @@ + + + + + + + + + + + +

+ + + + + + + +
+ +function ExtractFileName(fname: string): string; +
+         fname +
+ +function ExtractFileExt(fname: string): string; +
+         fname +
+ +function ExtractFilePath(fname: string): string; +
+         fname +
+ +function ExtractFileDir(fname: string): string; +
+         fname +
+ +function ExtractFileDrive(fname: string): string; +
+         fname +
+ +function ExpandFileName(fname: string): string; +
+         fname +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_math.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_math.html new file mode 100644 index 000000000..7b242517e --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_math.html @@ -0,0 +1,368 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

+ System Math + Delphi.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +function Sign(x: integer): integer; +
+         x +
+ +function Sign(x: longword): integer; +
+         x +
+ +function Sign(x: int64): integer; +
+         x +
+ +function Sign(x: uint64): integer; +
+         x +
+ +function Sign(x: real): integer; +
+         x +
+ +function Abs(x: integer): integer; +
+         x +
+ +function Abs(x: longword): longword; +
+         x +
+ +function Abs(x: int64): int64; +
+         x +
+ +function Abs(x: uint64): uint64; +
+         x +
+ +function Abs(x: real): real; +
+         x +
+ +function Sin(x: real): real; +
+         x +
+ +function Sinh(x: real): real; +
+         x +
+ +function Cos(x: real): real; +
+         x +
+ +function Cosh(x: real): real; +
+         x +
+ +function Tan(x: real): real; +
+         x +
+ +function Tanh(x: real): real; +
+         x +
+ +function ArcSin(x: real): real; +
+         x +
+ +function ArcCos(x: real): real; +
+         x +
+ +function ArcTan(x: real): real; +
+         x +
+ +function Exp(x: real): real; +
+         x +
+ +function Ln(x: real): real; +
+         x +
+ +function Log2(x: real): real; +
+         x 2 +
+ +function Log10(x: real): real; +
+         x +
+ +function LogN(base,x: real): real; +
+         x base +
+ +function Sqrt(x: real): real; +
+         x +
+ +function Sqr(x: integer): int64; +
+         x +
+ +function Sqr(x: longword): uint64; +
+         x +
+ +function Sqr(x: int64): int64; +
+         x +
+ +function Sqr(x: uint64): uint64; +
+         x +
+ +function Sqr(x: real): real; +
+         x +
+ +function Power(x,y: real): real; +
+         x y +
+ +function Round(x: real): integer; +
+         x, +
+ +function Trunc(x: real): integer; +
+         x +
+ +function Int(x: real): real; +
+         x +
+ +function Frac(x: real): real; +
+         x +
+ +function Floor(x: real): integer; +
+         , x +
+ +function Ceil(x: real): integer; +
+         , x +
+ +function RadToDeg(x: real): real; +
+        
+function DegToRad(x: real): real;
+         +
+ +procedure Randomize; +
+         +
+ +procedure Randomize(seed: integer); +
+         , seed. seed +
+ +function Random(maxValue: integer): integer; +
+         0 maxValue-1 +
+ +function Random(a,b: integer): integer; +
+         a b +
+ +function Random: real; +
+         [0..1) +
+ +function Max(a,b: integer): integer; +
+         a,b +
+ +function Max(a,b: longword): longword; +
+         a,b +
+ +function Max(a,b: int64): int64; +
+         a,b +
+ +function Max(a,b: uint64): uint64; +
+         a,b +
+ +function Max(a,b: real): real; +
+         a,b +
+ +function Min(a,b: integer): integer; +
+         a,b +
+ +function Min(a,b: longword): longword; +
+         a,b +
+ +function Min(a,b: int64): int64; +
+         a,b +
+ +function Min(a,b: uint64): uint64; +
+         a,b +
+ +function Min(a,b: real): real; +
+         a,b +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_readwrite.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_readwrite.html new file mode 100644 index 000000000..87a26fa7c --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_readwrite.html @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

-

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +procedure Read(a,b,...); +
+         a,b,... +
+ +procedure Readln(a,b,...); +
+         a,b,... +
+function ReadInteger: integer;
+         integer, +
+function ReadReal: real;
+         real, + +
+function ReadString: string;
+         string, + +
+function ReadChar: char;
+         char, + +
+function ReadBoolean: boolean;
+         boolean, + +
+function ReadlnInteger: integer;
+         integer, , + +
+function ReadlnReal: real;
+         real, +, +
+function ReadlnString: string;
+         string, +, +
+function ReadlnChar: char;
+         char, +, +
+function ReadlnBoolean: boolean;
+         boolean, +, +
+function ReadInteger(prompt: string): integer;
+         + integer, +
+function ReadReal(prompt: string): real;
+         + real, + +
+function ReadString(prompt: string): + string;
+         + string, + +
+function ReadChar(prompt: string): char;
+         + char, + +
+function ReadBoolean(prompt: string): + boolean;
+         + boolean, + +
+function ReadlnInteger(prompt: string): integer;
+         + integer, , + +
+function ReadlnReal(prompt: string): + real;
+         + real, +, +
+function ReadlnString(prompt: string): + string;
+         + string, +, +
+function ReadlnChar(prompt: string): + char;
+         + char, +, +
+function ReadlnBoolean(prompt: string): + boolean;
+         + boolean, +, +
+ function ReadSeqInteger(n: integer): array of + integer;
+          n , +
+ function ReadSeqReal(n: integer): array of real; +
+          n , +
+ function ReadSeqString(n: integer): array of + string;
+          n , +
+ function ReadSeqInteger(const + prompt: string; n: integer): array of integer;
+          n + , +
+ function ReadSeqReal(const + prompt: string; n: integer): array of real;
+          n + , +
+ function ReadSeqString(const prompt: + string; n: integer): array of string;
+          n , + +
+ +procedure Read(f: Text; a,b,...); +
+         a,b,... f +
+ +procedure Readln(f: Text; a,b,...); +
+         a,b,... f +
+function ReadInteger(f: Text): integer; +
+         integer, f
+function ReadReal(f: Text): +integer;
+         real, + f
+function ReadString(f: Text): +integer;
+         string, + f
+function ReadChar(f: Text): +integer;
+         char, + f
+function ReadBoolean(f: Text): +integer;
+         boolean, + f
+ +procedure Readln(f: file of T; a,b,...); +
+         a,b,... f +
+ +procedure Readln(f: file; a,b,...); +
+         a,b,... f +
+ +procedure Write(a,b,...); +
+         a,b,... . + + + ToString +
+ +procedure WriteFormat(formatstr: string; a,b,...); +
+         a,b,... + formatstr +
+ +procedure Writeln(a,b,...); +
+         a,b,... +
+ +procedure WritelnFormat(formatstr: string; a,b,...); +
+         a,b,... + formatstr +
+ +procedure Print(a,b,...); +
+          a,b,... , +
+ +procedure Println(a,b,...); +
+         a,b,... , + ,
+ +procedure Write(f: Text; a,b,...); +
+         a,b,... f +
+ +procedure WriteFormat(f: Text; formatstr: string; a,b,...); +
+         a,b,... + f formatstr +
+ +procedure Writeln(f: Text; a,b,...); +
+         a,b,... f +
+ +procedure WritelnFormat(f: Text; formatstr: string; a,b,...); +
+         a,b,... + f formatstr +
+ +procedure Write(f: file of T; a,b,...); +
+         a,b,... f +
+ +procedure Write(f: file; a,b,...); +
+         a,b,... f +
+ + + + + + + +
+ +procedure Print(f: Text; a,b,...); +
+          a,b,... + , +
+ +procedure Println(f: Text; a,b,...); +
+         a,b,... + , + ,
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_seq.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_seq.html new file mode 100644 index 000000000..29677c3f3 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_seq.html @@ -0,0 +1,135 @@ + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ function Range(a,b: integer): sequence of + integer;
+          a b
+ function Range(c1,c2: char): sequence of + char;
+          c1 c2
+ function Range(a,b: real; n: integer): + sequence of real;
+          + [a,b] n
+ function Range(a,b,step: integer): + sequence of integer;
+          a b step
+ function Seq<T>(params a: + array of T): sequence of T;
+         
+ function SeqGen<T>(count: integer; first: T; next: T->T): sequence of T;
+          count , + first, next
+ function SeqGen<T>(count: integer; first,second: T; next: + (T,T)->T): sequence of T;
+          count , + first second, next
+ function SeqFill<T>(count: integer; x: T): + sequence of T;
+          count x
+ function SeqGen<T>(count: integer; f: + integer->T): sequence of T;
+          count , + f(i)
+ function SeqWhile<T>(first: T; next: T->T; pred: + T->boolean): sequence of T;
+          + first, next + pred
+ function SeqWhile<T>(first,second: T; next: (T,T)->T; + pred: T->boolean): sequence of T;
+          , first + second, next + pred
+ function SeqRandom(n: integer := 10; a: integer := 0; + b: integer := 100): sequence of integer;
+          n
+ function SeqRandomReal(n: integer := 10; a: real := + 0; b: real := 10): sequence of real;
+          n
+ function ReadSeqInteger(n: integer): + sequence of integer;
+          n ,
+ function ReadSeqInteger(const + prompt: string; n: integer): sequence of integer;
+          n + ,
+ function ReadSeqReal(n: integer): sequence of + real;
+          n , +
+ function ReadSeqReal(const prompt: string; n: + integer): sequence of real;
+          n + ,
+ function ReadSeqString(n: integer): sequence of + string;
+          n ,
+ function ReadSeqString(const prompt: + string; n: integer): sequence of string;
+          + n , +
+ \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_string.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_string.html new file mode 100644 index 000000000..d313318e1 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_string.html @@ -0,0 +1,363 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +function Chr(a: byte): char; +
+          +
+ +function ChrUnicode(a: word): char; +
+         Unicode + ( Chr)
+ +function ChrAnsi(a: word): char; +
+          Windows
+ +function Ord(a: char): word; +
+          +
+ +function OrdUnicode(a: char): word; +
+         Unicode + ( Ord) +
+ +function OrdAnsi(a: char): word; +
+         Windows
+ +function/b> UpperCase(ch: char): char; +
+         +
+ +function LowerCase(ch: char): char; +
+         +
+ +function UpCase(ch: char): char; +
+         +
+ +function LowCase(ch: char): char; +
+         +
+ +function Pos(subs,s: string): integer; +
+         subs s. , 0 +
+ +function PosEx(subs,s: string; from: integer := 1): integer; +
+         subs s from. , 0 +
+ +function Length(s: string): integer; +
+         +
+ +procedure SetLength(var s: string; n: integer); +
+         s n +
+ +procedure Insert(source: string; var s: string; index: integer); +
+         source s index +
+ +procedure Delete(var s: string; index,count: integer); +
+         s count index +
+ +function Copy(s: string; index,count: integer): string; +
+         s count index +
+ +function Concat(s1,s2,...: string): string; +
+         , s1,s2,... +
+ +function Concat(s1,s2: string): string; +
+         , s1 s2 +
+ +function LowerCase(s: string): string; +
+         +
+ +function UpperCase(s: string): string; +
+         +
+ +function StringOfChar(ch: char; count: integer): string; +
+         , count ch +
+ +function ReverseString(s: string): string; +
+         +
+ +function CompareStr(s1,s2: string): integer; +
+         . < 0 s1 0 s1>s2 = 0 s1=s2 +
+ +function LeftStr(s: string; count: integer): string; +
+         count s +
+ +function RightStr(s: string; count: integer): string; +
+         count s +
+ +function Trim(s: string): string; +
+         +
+ +function TrimLeft(s: string): string; +
+         +
+ +function TrimRight(s: string): string; +
+         +
+ +function Format(fmtstr: string; params pars: array of object): string; +
+         , fmtstr pars +
+ +function StrToInt(s: string): integer; +
+         +
+ +function StrToInt64(s: string): int64; +
+         +
+ +function StrToFloat(s: string): real; +
+         +
+ +function TryStrToInt(s: string; var value: integer): boolean; +
+         s value. False +
+ +function TryStrToInt64(s: string; var value: int64): boolean; +
+         s value. False +
+ +function TryStrToFloat(s: string; var value: real): boolean; +
+         s value. False +
+ +function TryStrToFloat(s: string; var value: single): boolean; +
+         s value. False +
+ +procedure Val(s: string; var value: integer; var err: integer); +
+         s value. , err=0, err>0 +
+ +procedure Val(s: string; var value: shortint; var err: integer); +
+         s value. , err=0, err>0 +
+ +procedure Val(s: string; var value: smallint; var err: integer); +
+         s value. , err=0, err>0 +
+ +procedure Val(s: string; var value: int64; var err: integer); +
+         s value. , err=0, err>0 +
+ +procedure Val(s: string; var value: byte; var err: integer); +
+         s value. , err=0, err>0 +
+ +procedure Val(s: string; var value: word; var err: integer); +
+         s value. , err=0, err>0 +
+ +procedure Val(s: string; var value: longword; var err: integer); +
+         s value. , err=0, err>0 +
+ +procedure Val(s: string; var value: uint64; var err: integer); +
+         s value. , err=0, err>0 +
+ +procedure Val(s: string; var value: real; var err: integer); +
+         s value. , err=0, err>0 +
+ +procedure Val(s: string; var value: single; var err: integer); +
+         s value. , err=0, err>0 +
+ +procedure Str(i: integer; var s: string); +
+         i s +
+ +procedure Str(r: real; var s: string); +
+         r s +
+ +function IntToStr(a: integer): string; +
+         +
+ +function IntToStr(a: int64): string; +
+         +
+ +function FloatToStr(a: real): string; +
+         +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_system.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_system.html new file mode 100644 index 000000000..097257513 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_system.html @@ -0,0 +1,261 @@ + + + + + + + + + + + + + + + + + + + + + + + + + +

,

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ function ReadLines(path: string): + sequence of string;
+          + +
+ function ReadLines(path: string; en: Encoding): + sequence of string;
+          en + +
+ function ReadAllLines(path: string): + array of string;
+          +
+ function ReadAllLines(path: string; en: + Encoding): array of string;
+          en +
+ function ReadAllText(path: string): string; +
+          +
+ function ReadAllText(path: string; en: Encoding): + string;
+          en
+ + procedure WriteLines(path: string; ss: sequence + of string); +
+          , + +
+ + procedure WriteLines(path: string; ss: sequence + of string; en: Encoding); +
+          en, + +
+ + procedure WriteAllLines(path: string; ss: array + of string); +
+          , +
+ + procedure WriteAllLines(path: string; ss: array + of string; en: Encoding); +
+          en, + +
+ + procedure WriteAllText(path: string; s: string); +
+          , +
+ + procedure WriteAllText(path: string; s: string; en: + Encoding); +
+          en, + +
+ function EnumerateFiles(path: string; + searchPattern: string := '*.*'): sequence of string; +
+          , + +
+ function EnumerateAllFiles(path: string; + searchPattern: string := '*.*'): sequence of string; +
+          , + , +
+ function EnumerateDirectories(path: string): + sequence of string;
+          +
+ function EnumerateAllDirectories(path: string): + sequence of string;
+          , +   +
+ +function GetDir: string; +
+         +
+ +procedure ChDir(s: string); +
+         +
+ +procedure MkDir(s: string); +
+         +
+ +procedure RmDir(s: string); +
+         +
+ +function CreateDir(s: string): boolean; +
+         . True, +
+ +function DeleteFile(s: string): boolean; +
+         . , False +
+ +function GetCurrentDir: string; +
+         +
+ +function RemoveDir(s: string): boolean; +
+         . True, +
+ +function RenameFile(name, newname: string): boolean; +
+         name, newname. True, +
+ +function SetCurrentDir(s: string): boolean; +
+         . True, + +
+ +function ChangeFileNameExtension(name,newext: string): string; +
+         name newext +
+ +function FileExists(name: string): boolean; +
+         True, name +
+ +function DiskFree(diskname: string): int64; +
+         diskname +
+ +function DiskSize(diskname: string): int64; +
+         diskname +
+ +function DiskFree(disk: integer): int64; +
+         disk. disk=0 - , disk=1 - A: , disk=2 - B: .. +
+ +function DiskSize(disk: integer): int64; +
+         disk. disk=0 - , disk=1 - A: , disk=2 - B: .. +
+ \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types.html new file mode 100644 index 000000000..6ca1a0ab7 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types.html @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + +
+shortstring = string[255]
+
        
+ + PBoolean +
+         boolean +
+ + PByte +
+         byte +
+ + PShortint +
+         shortint +
+ + PChar +
+         char +
+ + PSmallint +
+         smallint +
+ + PWord +
+         word +
+ + PPointer +
+         pointer +
+ + PInteger +
+         integer +
+ + PLongword +
+         longword +
+ + PLongint +
+         longint +
+ + PInt64 +
+         int64 +
+ + PUInt64 +
+         uint64 +
+ + PSingle +
+         single +
+ + PReal +
+         real +
+ + PDouble +
+         double +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_collections.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_collections.html new file mode 100644 index 000000000..0dca180de --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_collections.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ List<T>
+
        
+ Stack<T>
+          - , " + - "
+ Queue<T>
+          - , " + - " +
+ LinkedList<T>
+          +
+ LinkedListNode<T>
+          +
+ HashSet<T>
+          +
+ SortedSet<T>
+          +
+ Dictionary<Key,Value>
+          ( -), + - +
+ SortedDictionary<Key,Value>
+          ( -), + +
+ SortedList<Key,Value>
+          ( -), + +
+ KeyValuePair<Key,Value>
+          - +
+ IEnumerable<T>
+         , + +
+ IEnumerator<T>
+          +
+ IComparer<T>
+          +
+ Comparer<T>
+          IComparer<T> +
+ IEqualityComparer<T>
+          +
+ EqualityComparer<T>
+          IEqualityComparer<T>
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_common.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_common.html new file mode 100644 index 000000000..8a6118339 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_common.html @@ -0,0 +1,48 @@ + + + + + + + + + + + + +

+ + + + + + + + + +
+shortstring = string[255]
+
        
+ DateTime
+         
+ Tuple
+          +
+ + StringBuilder +
+          +
+ Encoding
+          +
+ TextFile
+          text +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_pointers.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_pointers.html new file mode 100644 index 000000000..97871cec3 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_pointers.html @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + + + + + + + + + + +
+ PBoolean
+         boolean +
+ PByte
+         byte +
+ PShortint
+         shortint +
+ + PChar +
+         char +
+ + PSmallint +
+         smallint +
+ + PWord +
+         word +
+ + PPointer +
+         pointer +
+ + PInteger +
+         integer +
+ + PLongword +
+         longword +
+ + PLongint +
+         longint +
+ + PInt64 +
+         int64 +
+ + PUInt64 +
+         uint64 +
+ + PSingle +
+         single +
+ + PReal +
+         real +
+ + PDouble +
+         double +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_proc.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_proc.html new file mode 100644 index 000000000..a095c900a --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_proc.html @@ -0,0 +1,81 @@ + + + + + + + + + + + + + + + + + + + +

+ + + + + + + + + + + + + + + +
+ Action0
+
        
+ Action<T>
+          +
+ Action2<T1,T2>
+          +
+ Action3<T1,T2,T3>
+          +
+ Func0<Res>
+          +
+ Func<T,Res>
+          +
+ IntFunc = Func<integer,integer>
+          , + +
+ RealFunc = Func<real,real>
+          , + +
+ StringFunc = Func<string,string>
+          , + +
+ Func2<T1,T2,Res>
+          +
+ Func3<T1,T2,T3,Res>
+          +
+ Predicate<T>
+          , boolean +
+ Predicate2<T1,T2>
+          , boolean +
+ Predicate3<T1,T2,T3>
+          , boolean +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_regex.html b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_regex.html new file mode 100644 index 000000000..89a7a410b --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/Old2016/stand_types_regex.html @@ -0,0 +1,47 @@ + + + + + + + + + + + + +

,

+ + + + + + + + + + + + + + + + +
+ Regex
+         
+ Match
+          +
+ MatchEvaluator
+          , + Regex.Replace
+ MatchCollection
+         
+ RegexOptions
+         
+ RegexGroup
+          Regex.Match
+ RegexGroupCollection
+          Regex.Match
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/_main.html b/PABCNetHelp/LangGuide/PABCSystemUnit/_main.html new file mode 100644 index 000000000..05b866571 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/_main.html @@ -0,0 +1,75 @@ + + + + + + + + + + + + + +

PABCSystem

+

PABCSystem + . +, , , , , .

+

+ +

+ +

+ +

, PABCSystem

+ + +

+ + + + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/stand_binary_files_methods.html b/PABCNetHelp/LangGuide/PABCSystemUnit/stand_binary_files_methods.html new file mode 100644 index 000000000..2571202c8 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/stand_binary_files_methods.html @@ -0,0 +1,41 @@ + + + + + + + + + + + + +

+

+ ( file, file of T) + :

+  + + + + + + + + + + + +
+ function FilePos: int64;
+          +
+ function FileSize: int64;
+         
+ procedure Seek(n: int64);
+          + n
+ procedure Truncate;
+          , +
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/stand_common_files_methods.html b/PABCNetHelp/LangGuide/PABCSystemUnit/stand_common_files_methods.html new file mode 100644 index 000000000..ed03d5fa1 --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/stand_common_files_methods.html @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + +

+

+ (Text, +file, + +file of T) + :

+  + + + + + + + + + + + + + + + + + + + + + +
+ procedure Write(a,b,...);
+          a, b, ... +
+ function Name: string;
+         
+ function FullName: string;
+         
+ function Eof: boolean;
+          True, , False +
+ procedure Close;
+         
+ procedure Erase;
+         
+ procedure Rename(newname: string);
+          , newname
+ diff --git a/PABCNetHelp/LangGuide/PABCSystemUnit/stand_text_files_methods.html b/PABCNetHelp/LangGuide/PABCSystemUnit/stand_text_files_methods.html new file mode 100644 index 000000000..99add9b3c --- /dev/null +++ b/PABCNetHelp/LangGuide/PABCSystemUnit/stand_text_files_methods.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + + + + + + + +

+

+ ( Text) + :

+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ procedure Writeln(a,b,...);
+          a, b, ... +
+ function ReadInteger: integer;
+          integer,
+ function ReadReal: real;
+          real,
+ function ReadChar: char;
+          char,
+ function ReadString: string;
+          string, , +
+ function ReadBoolean: boolean;
+          boolean,
+ function ReadlnInteger: integer;
+          integer, , +
+ function ReadlnReal: real;
+          real, , +
+ function ReadlnChar: char;
+          char, , +
+ function ReadlnString: string;
+          string, , +
+ function ReadlnBoolean: boolean;
+          boolean, , +
+ function Eoln: boolean;
+          True, , False +
+ function SeekEof: boolean;
+          , True, +
+ function SeekEoln: boolean;
+          , True, +
+ procedure Flush;
+         
+ function ReadToEnd: string;
+          +
+ diff --git a/PABCNetHelp/LangGuide/ProcFunc/defaultparams.html b/PABCNetHelp/LangGuide/ProcFunc/defaultparams.html new file mode 100644 index 000000000..f842dca5d --- /dev/null +++ b/PABCNetHelp/LangGuide/ProcFunc/defaultparams.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + +

+

. + . + , , + . + .

+

:

+
+

procedure PrintTwo(a,b: integer; delim: char + := ' ');
+ begin
+  write(a,delim,b);
+ end;

+

...
+ PrintTwo(3,5);
+ PrintTwo(4,2,';');

+
+

+ .

+ + + diff --git a/PABCNetHelp/LangGuide/ProcFunc/external.html b/PABCNetHelp/LangGuide/ProcFunc/external.html new file mode 100644 index 000000000..10c005f8d --- /dev/null +++ b/PABCNetHelp/LangGuide/ProcFunc/external.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + +

dll

+

dll +( , .NET-) + :

+
+

external ' dll' + name ' dll'; 

+
+

:

+
+

function MessageBox(h: integer; m,c: string; t: integer): + integer;
+   external 'User32.dll' name 'MessageBox'; +
+ ...
+ MessageBox(0,'Hello!','',0);

+
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/ProcFunc/forward.html b/PABCNetHelp/LangGuide/ProcFunc/forward.html new file mode 100644 index 000000000..a02ab3ad3 --- /dev/null +++ b/PABCNetHelp/LangGuide/ProcFunc/forward.html @@ -0,0 +1,45 @@ + + + + + + + + + + + + + +

+

+, . , + ( A + B, + A). + , , + forward. +:

+
+
+procedure B(i: integer); forward;
+procedure A(i: integer);
+begin
+  ...
+  B(i-1);
+end;
+procedure B(i: integer);
+begin
+  ...
+  A(i div 2);
+end;
+
+
+

+ .

+

forward . +, , +.

+ + + diff --git a/PABCNetHelp/LangGuide/ProcFunc/localglobal.html b/PABCNetHelp/LangGuide/ProcFunc/localglobal.html new file mode 100644 index 000000000..8bfdeb2e0 --- /dev/null +++ b/PABCNetHelp/LangGuide/ProcFunc/localglobal.html @@ -0,0 +1,33 @@ + + + + + + + + + + +

+

, , + . , , + .

+

.

+

, + , + . :

+
+
+var i: real;
+procedure p;
+var i: integer;
+begin
+  //    i    
+  i:=5; //    i; ...
+end;
+
+
+ + + + diff --git a/PABCNetHelp/LangGuide/ProcFunc/overloading.html b/PABCNetHelp/LangGuide/ProcFunc/overloading.html new file mode 100644 index 000000000..f17af31dd --- /dev/null +++ b/PABCNetHelp/LangGuide/ProcFunc/overloading.html @@ -0,0 +1,144 @@ + + + + + + + + + + + + + +

+

+ , +. , + - . + + .

+

+ , + . ,

+
+

procedure p(b: byte);
+ begin

end;
+ procedure
p(r: real);
+ begin

end;

+
+

p(1.0) + real ( +), p(1) + byte ( + integer + byte).

+

, , Object Pascal, + overload .

+

+ , . , + , + . +,

+
+

procedure p(i: integer; r: real);
+ begin

end;
+ procedure
p(r: real; i: integer);
+ begin

end;

+
+

p(1,2) + , .

+

+ , , + . ,

+
+

procedure p(i: integer);

+
+

+
+

procedure p(var i: integer);

+
+

.

+

+ , .. + .

+

+, . + , .

+

+ + +. , +, uses, + . , + (, , + ), , + . , + , , + , .

+

, - +un1 un2:

+

main.pas

+
+

uses un2,un1;

+

procedure p(i: integer);
+ begin
+  write(1);
+ end;

+

begin
+  p(2.2);
+  p(2);
+ end.

+
+

un2.pas

+
+

unit un2;

+

procedure p(r: real);
+ begin
+  write(3);
+ end;

+

end.

+
+

un1.pas

+
+

unit un1;

+

procedure p(r: real);
+ begin
+  write(2);
+ end;

+

end.

+
+

21, + , p + un1.

+

: + , +.. Object, , +, ( +). +. + ; + + Object.

+

+ , , +. ,

+
+

procedure p(i: integer);
+ begin
+  write(1);
+ end;

+

procedure p(params a: array of + integer);
+ begin
+  write(2);
+ end;

+

begin
+  p(1) 
+ end.

+
+

.

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/ProcFunc/params.html b/PABCNetHelp/LangGuide/ProcFunc/params.html new file mode 100644 index 000000000..cd16b4199 --- /dev/null +++ b/PABCNetHelp/LangGuide/ProcFunc/params.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + +

+

, +, . , +, .

+

+ +var const, - , + . + var const, + - , + +. PascalABC.NET + - .

+

, + + . - + + .

+

, :

+
+ procedure PrintSquare(i: integer);
+ begin
+  writeln(i*i);
+ end;
+ PrintSquare(5*a-b) 5*a-b i, + .

, + + . +- + . - +, + .

+

,

+
+ procedure Mult2(var + a: integer);
+ begin
+   a := a*2;
+ end;
+ Mult2(d) d 2 .

- + , + .  - + , + . 

+

+. (, , ), + . +, , . + , +var, - const:

+

:

+
+ type
+
  Person = record
+    name: string;
+    age,height,weight: integer;
end;

procedure Print(const p: Person);
+ begin
+
  write(p.name,' ',p.age,' ',p.height,' ',p.weight);
+ end;

+

procedure IncAge(var p: Person);
+ begin
+   Inc(p.age);
+ end;

+
+

+ .

+

, + - + . , +

+
+

procedure p(a: array of integer);
+ begin
+  a[1] := 2;
+ end;

+

var b: array of integer := (1,1);

+

begin
+  p(b);
+  writeln(b[1]);
+ end.

+
+

2. + + :

+
+

procedure q(var a: array of integer);
+ begin
+  SetLength(a,10);
+ end;

+
+ + + diff --git a/PABCNetHelp/LangGuide/ProcFunc/procdef.html b/PABCNetHelp/LangGuide/ProcFunc/procdef.html new file mode 100644 index 000000000..fa7266a80 --- /dev/null +++ b/PABCNetHelp/LangGuide/ProcFunc/procdef.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + + + + +

:

+

+

+, , + . , , + , + . +.

+

+

+ .

+

:

+
+

procedure ( + );
+

+ begin
+  

+ end;

+
+

:

+
+

function ( + ): + ;
+

+ begin
+  

+ end;

+
+

, + begin/end, + .

+

+ . +, ";". + , , + . + var const, , + (.. ). + , , + , ( + ).

+

+ , +. + + , ( - + ) + + . + .

+

+. , + : +.

+

:

+
+

procedure DoAdd(a,b: real; var res: real);
+ begin
+
  res := a + b;
+ end;

+
+

+

. + + :

+
+

+ begin
+
  var x := ReadInteger;
  var + y := ReadInteger;
  var res: integer;
  DoAdd(x,y,res);
  + Print(res); 
  DoAdd(2*x,y,res);
  Print(res);  +
end;

+
+

  + .

+

Result

+

Result, + . + . :

+
+

function Sum(a,b: real): real;
+ begin
Result := a + b;
+ end;

+

function MinElement(a: + array of real): real;
+ begin
+  Result := real.MaxValue;
foreach var x in + a do
+    if x < Result then +
+       Result := x;
+ end;

+

begin
  var a := Seq(1,5,3);
  + writeln(MinElement(a) + Sum(2,3));
end.

+
+

Result +, .

+

+

PascalABC.NET + :

+
+

procedure WriteStar := write('*');

+
+

, :

+
+

function Add(a,b: real): real := a + b;

+
+

:

+
+

function Add(a,b: real) := a + b;

+
+ + + diff --git a/PABCNetHelp/LangGuide/ProcFunc/variableparams.html b/PABCNetHelp/LangGuide/ProcFunc/variableparams.html new file mode 100644 index 000000000..c215bffa6 --- /dev/null +++ b/PABCNetHelp/LangGuide/ProcFunc/variableparams.html @@ -0,0 +1,46 @@ + + + + + + + + + + + + + +

+

, , + params, + . :

+
+ function Sum(params a: array of integer): integer; +
+ begin
+
+  + Result := 0; +
+  for
i: integer := 0 to a.Length do +
+    + Inc(Result,a[i]); +
+ end;
+
+

+ params + + , :

+
+

var s: integer := Sum(1,2,3,4,5);
+ s := s + Sum(6,7);

+
+ params + , , + . params . + + + diff --git a/PABCNetHelp/LangGuide/Types/arrays.html b/PABCNetHelp/LangGuide/Types/arrays.html new file mode 100644 index 000000000..f658dea2e --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/arrays.html @@ -0,0 +1,23 @@ + + + + + + + + + + + +

+

, + , ( +, ).

+

PascalABC.NET + +.

+

PascalABC.NET + .

+ + + diff --git a/PABCNetHelp/LangGuide/Types/boolean.html b/PABCNetHelp/LangGuide/Types/boolean.html new file mode 100644 index 000000000..ae80de3d3 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/boolean.html @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + +

+

+boolean 1 , + True () + False ().

+

:

+
+

boolean.Parse(s) - + , + boolean. , + ; 

+

boolean.TryParse(s,res) - + , + boolean + res. , + True, - + False.

+
+

, + ToString, + boolean.

+

. , +False<True, Ord(False)=0, Ord(True)=1.

+

 

+ + + diff --git a/PABCNetHelp/LangGuide/Types/char.html b/PABCNetHelp/LangGuide/Types/char.html new file mode 100644 index 000000000..b92e511a2 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/char.html @@ -0,0 +1,75 @@ + + + + + + + + + + + + + +

+

char + 2 Unicode-. + System.Char + .NET.

+

+ + () . : 'a'+'b' += 'ab'. , , + :

+

var s: string := ' '+15; // s = ' 15'
+var s1: string := 15+' '; // s = '15 '

+

  < > <= +>= = <>, :

+

'a'<'b' // True
'2'<'3' // True

+

Windows (CP1251) + +Chr Ord:

+
+

Chr(n) - , + n + Windows;
+ Ord()
- , byte, + c + Windows.

+
+

Unicode + +ChrUnicode OrdUnicode:

+
+

ChrUnicode(w) - + w + Unicode;
+ OrdUnicode()
- word, + + c + Unicode.

+
+

, # +Unicode- ( + 0 65535).

+

:

+
+

char(w) w + Unicode;
+ word()
+ c + Unicode.

+
+

.

+

char.

+ + + diff --git a/PABCNetHelp/LangGuide/Types/charmembers.html b/PABCNetHelp/LangGuide/Types/charmembers.html new file mode 100644 index 000000000..e32da7333 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/charmembers.html @@ -0,0 +1,61 @@ + + + + + + + + + + + + +

char

+

char +PascalABC.NET .

+

char

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
char.IsDigit(c: char): boolean,
char.IsLetter(c: char): boolean,
char.IsWhiteSpace(c: char): boolean,
char.IsUpper(c: char): boolean,
char.IsLower(c: char): boolean,
char.IsPunctuation(c: char): boolean,
char.IsLetterOrDigit(c: char): boolean,
char.ToLower(c: char): char ,
char.ToUpper(c: char): char ,
+ + + diff --git a/PABCNetHelp/LangGuide/Types/dynamicarrays.html b/PABCNetHelp/LangGuide/Types/dynamicarrays.html new file mode 100644 index 000000000..f1cb37995 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/dynamicarrays.html @@ -0,0 +1,223 @@ + + + + + + + + + + + + + + +

+

+

:

+
+

array of  ( + )
+ array [,] of   + ( )
+ ..

+
+

. + ( ). +

+

+

. + new :

+
+

var
+  a: array of integer;
+  b: array [,] of real;
+ begin
+  a := new integer[5];
+   + b := new real[4,3];
+ end.

+
+

, + :

+
+

var
  a: array of integer := new integer[5];
+  b: array [,] of real := new real[4,3];

+
+

- :

+
+

var
  a := new integer[5];
+  b := new real[4,3];

+
+

SetLength:

+
+

SetLength(a,10);
+ SetLength(b,5,3);

+
+

.

+

SetLength , + .

+

+

+ new:

+
+

a := new integer[3](1,2,3);
+ b := new real[4,3] ((1,2,3),(4,5,6),(7,8,9),(0,1,2));

+
+

+ :

+
+

var
+  a: array of integer := (1,2,3);
+  b: array [,] of real := ((1,2,3),(4,5,6),(7,8,9),(0,1,2)); +
+   c: array of array of integer := + ((1,2,3),(4,5),(6,7,8));

+
+

+.

+

+ Seq..., + :

+
+

var a := Arr(1,3,5,7,8);                   + // array of integer
var s := + Arr('','',''); // array of string
var + b := ArrFill(777,5);                   + // b = [777,777,777,777,777]
var r := ArrRandom(10);                    + // 10 0 99 

+
+

:

+
+

var a := Arr(Arr(1,3,5),Arr(7,8),Arr(5,6)); // + array of array of integer

+
+

+

(n- + ). ( ) +Length Length:

+
+

l := Length(a);
+ l := a.Length;

+
+

+ Length GetLength(i):

+
+

l := Length(a,0);
+ l := + a.GetLength(0); 

+
+

+

+ :

+
for var i:=0 to a.Length-1 + do
  read(a[i]);
+

+ ReadSeqInteger:

+
var a := ReadSeqInteger(10);
+

.

+

+

write , + :

+
var a := Arr(1,3,5,7,9);
+ writeln(a); // [1,3,5,7,9]
              +
+

n- , + :.

+
var m := new integer[3,3] + ((1,2,3),(4,5,6),(7,8,9));
writeln(m); // + [[1,2,3],[4,5,6],[7,8,9]]
+

Print +Println:

+
+

a.Println;

+
+

, , + Print, . :

+
+

a.Print(NewLine);

+
+

.

+

+

+
+

var : array of array of + integer;

+
+

+SetLength:

+
+

SetLength(,5);
+ for i := 0 to 4 do
+  SetLength(c[i],3);

+
+

new + array of integer:

+
+

type IntArray = array of integer;
+ var
: array of IntArray;
+ ...
+ c := new IntArray[5];
+ for i := 0 to 4 do
+  c[i] := new integer[3];

+
+

+ :

+
+

var
+   c: array of array of integer := + ((1,2,3),(4,5),(6,7,8));

+
+

+

, +- :

+
+

var a1: array of integer;
+ var a2: array of integer;
+ a1 := a2;

+
+

, + : + + , .

+

, + Copy:

+
+

a1 := Copy(a2);

+
+

+

, .. + :

+
+

procedure Squares(a: array of + integer);
begin
  for var i:=0 + to a.Length-1 do
    + a[i] := Sqr(a[i]);
end;

begin
  + var a := Arr(1,3,5,7,9);
  Squares(a);
+ end.

+
+

: + . , + SetLength:

+
+

procedure Add(var a: + array of integer; x: integer);
begin
  + SetLength(a,a.Length+1);
  a[a.Length-1] := x;
end;
+
begin
  var a := + Arr(1,3,5,7,9);
  Add(a,666);
  writeln(a);
end.

+
+

+

+

+

+

+

+ +

+ + + diff --git a/PABCNetHelp/LangGuide/Types/enum_subrange.html b/PABCNetHelp/LangGuide/Types/enum_subrange.html new file mode 100644 index 000000000..74600965c --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/enum_subrange.html @@ -0,0 +1,75 @@ + + + + + + + + + + + + +

+

.

+
+

type typeName = (value1, value2, ..., valuen);

+
+

4 . value + typeName, + .

+

:

+

type
Season = (Winter,Spring,Summer,Autumn);
+  DayOfWeek = (Mon,Tue,Wed,Thi,Thr,Sat,Sun);

+
+

, + typeName.value, + , :

+
+

var a: DayOfWeek;
+ a := Mon;
+ a := DayOfWeek.Wed;

+
+

<:

+
+

DayOfWeek.Wed < DayOfWeek.Sat

+
+

Ord, +Pred Succ, Inc +Dec. Ord + , +.

+

+ ToString, + . write .

+

:

+
+

type Season = (Winter,Spring,Summer,Autumn);
+ var s: Season;
+ begin
+  s := Summer;
+  writeln(s.ToString); // Summer
+  writeln(s); // Summer 
+ end.

+
+

, + a..b, a +- , b - + , a<b:

+
+

var
intI: 0..10;
+  intC: 'a'..'z';
+  intE: Mon..Thr; 

+
+

, , + . + , .

+ + + diff --git a/PABCNetHelp/LangGuide/Types/equiv2.html b/PABCNetHelp/LangGuide/Types/equiv2.html new file mode 100644 index 000000000..651f3336e --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/equiv2.html @@ -0,0 +1,57 @@ + + + + + + + + + +

// !!!

+

Pascal ABC + (), . ,

+
+

type Arr=array [1..100] of integer;
+ var

+  a: Arr;
+  b: array [1..100] of integer;

+
+

:

+
+

a:=b;

+
+

, , :

+
+

type
+  rec1 = record i,j: integer end;
+  rec2 = record x,y: integer end;
+ ...
+ var r1: rec1; r2: rec2;
+ ...
+ r1:=r2; // !

+
+

+ :

+
+

type
+  proc1 = procedure (i: integer); 
+  proc2 = procedure (x: integer);
+ ...
+ var p1: proc1; p2: proc2;
+ ...
+ p1:=p2; //

+
+

( + Borland Pascal Borland Delphi) + (, , ) + , :

+
+

procedure foreach(var a: array [1..100] of + real; n: integer; f: function(r: real): real);
var i: integer;
+ begin
  for i:=1 to n do
    a[i]:=f(a[i]);
+ end;

+
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/Types/files.html b/PABCNetHelp/LangGuide/Types/files.html new file mode 100644 index 000000000..8f72ca887 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/files.html @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + +

+

+ , . +PascalABC.NET - + . , + #13#10 (Windows) + #10 (Linux). + NewLine. + +.

+

+ text, +file, + file of + :

+
+

var
+  f1: file of real;
+  f2: text;
+   f3: file;

+
+

+ , , , + .

+

+ +

, .NET +, .

+ + + diff --git a/PABCNetHelp/LangGuide/Types/index_types.html b/PABCNetHelp/LangGuide/Types/index_types.html new file mode 100644 index 000000000..9fafb362f --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/index_types.html @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + +

+

+PascalABC.NET , +, , + , + +.

+

+ + , +, , + .

+

, + .

+

+ +, +, , +, +, +.

+

, + - +.

+

, , +. + for. + , Ord, +Pred Succ, + Inc Dec.

+

, + , Object. + +PascalABC.NET  .NET. + void*.

+

PascalABC.NET : + + +.

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Types/integer.html b/PABCNetHelp/LangGuide/Types/integer.html new file mode 100644 index 000000000..5f500b70d --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/integer.html @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

, + .

+

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
,
shortint 1-128..127
smallint 2-32768..32767
integer, longint4-2147483648..2147483647
int648-9223372036854775808..9223372036854775807
byte 10..255
word20..65535
longword, cardinal 40..4294967295
uint6480..18446744073709551615
BigInteger
+

integer longint, + longword cardinal + .

+

+ : + + MaxInt64, + + MaxInt, + MaxSmallInt, + MaxShortInt, + + MaxUInt64, + + MaxLongWord, + + MaxWord, + + MaxByte.

+

T + BigInteger + :

+
+

T.MinValue - , + T;

+

T.MaxValue - , + T;

+
+

T + :

+
+

T.Parse(s) - , + T. + , ;  +

+

T.TryParse(s,res) - , + T + res. + , True, + - False.

+
+

, T + ToString, + .

+

, + , + $:

+
+

25   3456   $FFFF

+
+ + + diff --git a/PABCNetHelp/LangGuide/Types/pointers.html b/PABCNetHelp/LangGuide/Types/pointers.html new file mode 100644 index 000000000..00092bf52 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/pointers.html @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + +

+

- , . +PascalABC.NET + ( ) + ( +, - ).

+

T ^T, :

+
+

type pinteger = ^integer;
+ var p: ^record r,i: real end;

+
+

pointer.

+

, , + ^:

+
+

var
+  i: integer;
+  pi: ^integer;
+ ...
+ pi := @i; // i
+ pi^ := 5; // i 5

+
+

.

+

:

+
+

var
+  p: pointer;
+  pr: ^real;
+ ...
+ p := pr;

+
+

:

+
+

pr := p;
+ pr^ := 3.14;

+
+

(=) (<>). , , + nil ( ) : +p := nil.

+

! +.NET T + + - (, , + ). + : , + . , , + , + . +, . , +, .

+ + + diff --git a/PABCNetHelp/LangGuide/Types/proctype.html b/PABCNetHelp/LangGuide/Types/proctype.html new file mode 100644 index 000000000..63a42ac81 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/proctype.html @@ -0,0 +1,157 @@ + + + + + + + + + + + +

+

, , +, - . + - +() .

+

+

+ . :

+
+

type
+   ProcI = procedure (i: integer);
+  FunI = function (x,y: integer): integer;

+
+

+, :

+
+

function Mult(x,y: integer): integer;
+ begin
+   Result := x*y;
+ end;

+

var f: FunI := Mult;

+
+

+- + :

+
+

var f2: FunI := (x,y) -> x+2*y;

+
+

+ , :

+
+

write(f(2));  // 8
write(f2(3)); // 10

+
+

C

+

+ +. :

+
+

var f3: IntFunc := x -> 2*x-1;
var + f4: Func<integer,real> := x -> 2.5*x;
var f3: + Action<real> := x -> write(x,'  ');
var pr: + Predicate<string> := s -> s.Length>0;

+
+

C

+

:

+
+

() -> T;         // + , T
T1 -> T;         // c T1, T
(T1,T2) -> T     // c T1 T2, T
(T1,T2,T3) -> T  // + c T1, T2 T3, T
  ..
() -> + ();        //
T1 -> + ();        // c T1
+ (T1,T2) -> ()    // c T1 T2
+ (T1,T2,T3) -> () // c T1, T2 T3
  ..

+
+

+, .

+

+ : + +, ( , + ).

+

+

+ - +, :

+
+

procedure forall(a: array of + real; f: real->real);
+ begin
for var i := 0 to a.Length-1 do
+    a[i] := f(a[i]);
+ end;

+

...
+ forall(a,x->x*2); // 2
+ forall(a,x->x+3); // + 3

+
+

, + nil. + .

+

+= -=

+

.NET. + , . / + += +-=:

+
+

p1 += mult2;
+ p1 += add3;
+ forall(a,p1);  

+
+

: +, .

+

:

+
+

p1 -= print;

+
+

, / + . + +, , +.

+

+
+

type
+  A = class
+
    x0: integer := 1;
+     h: integer := 2; 
+     procedure PrintNext;
+     begin
+      Print(x0);
      x0 + *= h; 
+     end;
+   end;

+

begin
+  + var
p: procedure;
+   var a1 := new A();
+   + p := a1.PrintNext;
  for var i:=1 to + 10 do
+   +   + p;
  // 1 2 4 8 16 32 64 128 256 512
+ end.

+
+

+ +-:

+
+

begin
+  + var
x0 := 1;
+   var
p: Action0 := procedure -> begin + Print(x0); x0 *= 2 end;
+   for var i:=1 to 10 do +
+   +   + p;
end.

+
+

 

+

 

+

 

+ + + diff --git a/PABCNetHelp/LangGuide/Types/real.html b/PABCNetHelp/LangGuide/Types/real.html new file mode 100644 index 000000000..a369e5272 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/real.html @@ -0,0 +1,137 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+

, , + :

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
,
+
real 815-16-1.8∙10308 .. 1.8∙10308
double 815-16-1.8∙10308 .. 1.8∙10308
single 47-8-3.4∙1038 .. 3.4∙1038
decimal1628-29-79228162514264337593543950335 .. + 79228162514264337593543950335
+

real double . real 5.0∙10-324, single 1.4∙10-45.

+

+ : +MaxReal, MaxDouble +MaxSingle.

+

R + decimal + :

+
+

R.MinValue - , + R;

+

R.MaxValue - , + R;

+

R.Epsilon - , + + R;

+

R.NaN - , (, , + 0/0);

+

R.NegativeInfinity - , + + (, , -2/0);

+

R.PositiveInfinity - , + + (, , 2/0).

+
+

R decimal + :

+
+

R.IsNaN(r) - True, + r R.NaN, False + ;

+

R.IsInfinity(r) - + True, r + R.PositiveInfinity + R.NegativeInfinity, + False ;

+

R.IsPositiveInfinity(r) - + True, r + R.PositiveInfinity, + False ;

+

R.IsNegativeInfinity(r) - + True, r + R.NegativeInfinity, + False ;

+
+

R + :

+
+

R.Parse(s) - + , + R. , + ; 

+

R.TryParse(s,res) + , + R + res. , + True, - + False.

+
+

, + ToString, + R.

+

, +:

+
+

1.7    0.013    2.5e3 + (2500)    1.4e-1 + (0.14)

+
+ + + diff --git a/PABCNetHelp/LangGuide/Types/records.html b/PABCNetHelp/LangGuide/Types/records.html new file mode 100644 index 000000000..122e55bed --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/records.html @@ -0,0 +1,214 @@ + + + + + + + + + + + + + +

+

, + .

+

+

+ +:

+
+

record
+
  
+
end

+
+

, + + var.

+

:

+
+

type
+   Person = record
+     Name: string;
+     Age: integer;
+   end;

+
+

+

+. 

+

:

+
+

var p: Person;
begin

  + p.Name := '';
+   p.Age := 20;
  writeln(p); // (,20)
+ end.

+
+

write + .

+

+

PascalABC.NET + +, + . , + PascalABC.NET :

+
+

record
+     1 
  +   2 
       + ...
+ end

+
+

:

+
+

 
+   
+    +

+
+

, + public +( ).

+

:

+
+

type
+   Person = record
+  private

+     Name: string;
+     Age: integer;
+   public
+    constructor Create(Name: string; Age: integer);
+     begin
+      Self.Name := Name;
+      Self.Age := Age;
+    end;
    procedure + Print;
  end;

procedure Person.Print;
+ begin
  writelnFormat(': {0} : {1}', + Name, Age);
end;

+
+

, + , . + , Print , + . - Create + .

+

+

+ ( Delphi Object Pascal):

+
+

const p: Person = (Name: ''; + Age: 18);

+
+
+

var p: Person := (Name: ''; + Age: 20);

+
+

, . , + , + , :

+
+

var p: Person := new Person('',20);

+
+

-, + Init, + :

+
+

type
+   Person = record
    ...
+   public

+    procedure Init(Name: string; Age: integer);
+     begin
+      Self.Name := Name;
+      Self.Age := Age;
+    end;
    ...
  end;
+ ...
var p: Person;
p.Init('',20);

+
+

Rec, + " ":

+
+

var p := Rec('',20);
Println(p); // + (,20)

+
+

- . +Item1, Item2 ..:

+
+

Println(p.Item1, p.Item2); // 20

+
+

+

+ :

+
    +
  1. ( + ).
  2. +
  3. ; (, + , , ). .NET + System.ValueType + struct-.
  4. +
  5. , + public + ( ), - internal.
  6. +
+

+

write + . , + +ToString Object - + .

+

:

+
+

type
+   Person = record
+  +   ...
+    function
ToString: + string; override;
+     begin
+       Result := + string.Format(': {0}  : {1}', + Name, Age);
+     end;
+   end;
+   ...
+ var p: Person := new Person('',20);
+ writeln(p); // :   : 20

+
+

+

, , , - +:

+
+

d2 := d1;

+
+

: + + , .

+

, , + . , + , - :

+
+

procedure PrintPerson(const p: + Person);
begin
  Print(p.Name, p.Age);
+ end;

procedure ChangeName(var + p: Person; NewName: string);
begin
  p.Name := + Name;
end;

+
+

+

, + :

+
+

type Person = record
  + name: string;
  age: integer;
end;

+ var p1,p2: Person;

begin
  + p1.age := 20;
  p2.age := 20;
  p1.name := 'Ivanov';
  + p2.name := 'Ivanov';
  writeln(p1=p2); // True
end.

+
+

+

Delphi Object Pascal, PascalABC.NET + .

+ + + diff --git a/PABCNetHelp/LangGuide/Types/sequences.html b/PABCNetHelp/LangGuide/Types/sequences.html new file mode 100644 index 000000000..a15190bbf --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/sequences.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + +

+

- , + . + array of T, + List<T>, +LinkedList<T>, +HashSet<T> +SortedSet<T>.

+

:

+
+

sequence of

+
+

. + , +.

+

sequence +of T .NET +System.Collections.Generic.IEnumerable<T>, - + , +System.Collections.Generic.IEnumerable<T>.

+

 

+

+ +Seq, SeqGen, +SeqFill, SeqWhile, +SeqRandom, +SeqRandomReal, ReadSeqInteger, +ReadSeqReal, +ReadSeqString. :

+
+

var s: sequence of integer;
s := + Seq(1,3,5);
s.Println;
s := SeqGen(1,x->x*2,10);
writeln(s);

+
+

 

+

. + +.

+

,

+
+

var s := SeqFill(1,10000000);
writeln(s.Sum());

+
+

, + + s.

+

+

+, + . :

+
+ Seq(1,2,3) + Seq(5,6,7)
Seq(1,2,3) + Arr(5,6,7)
+

, + + , +:

+
+ Seq(1,2,3) + 5
3 + Seq(5,6,7)
3 + Seq(5,6,7) + 9
+

+ +Concat.

+

:

+
+ Seq(1,2,3) * 3
+

1 2 3 : 1 2 3 1 2 3 1 2 3

+

+

+foreach:

+
+

foreach var x in s do
  if + x>2 then
    Print(x);

+
+

+

"" +T +array of T, List<T>, + LinkedList<T>, +HashSet<T> +SortedSet<T>,  , + +System.Collections.Generic.IEnumerable<T>.

+

+

:

+ +

 

+ + + diff --git a/PABCNetHelp/LangGuide/Types/sets.html b/PABCNetHelp/LangGuide/Types/sets.html new file mode 100644 index 000000000..945daf205 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/sets.html @@ -0,0 +1,102 @@ + + + + + + + + + + + + + +

+

+. ; + . + :

+
+

set of

+
+

, + .

+

:

+
+

type
+  ByteSet = set of byte;
+  StringSet = set of + string;
+  Digits = set of '0'..'9';
+  SeasonSet = set of (Winter,Spring,Summer,Autumn);
+  PersonSet = set of Person; 

+
+

: +, , +- . , +, ( ).

+

. + ,

+
+

[ ]

+
+

+ , ( ) a..b, + a b +- . :

+
+

var
+   bs: ByteSet := [1,3,5,20..25];
+   fios: StringSet := ['','',''];

+
+

, :

+
+

bs:=[];

+
+

.

+

.

+

+ +. s := s1   s1 + , + s, .

+

:

+
+

var st: set of 3..9;
+ ...
+ st := [1..5,8,10,12]; // st + [3..5,8]

+
+

in + :

+
+

if Wed in bestdays then ...

+
+

+ + (), - +(), * (), += (), <> +(), <= ( ), < ( ), >= ( +) > ( ).

+

write . +,

+
+

write(['','','']);

+
+

['','',''], +, , .

+

+foreach, +:

+
+

foreach var s in fios do
+  write(s,' ');

+
+

x s + s += [x] +Include: Include(s,x). x + s s -= [x] + Exclude: Exclude(s,x).

+ + + diff --git a/PABCNetHelp/LangGuide/Types/staticarrays.html b/PABCNetHelp/LangGuide/Types/staticarrays.html new file mode 100644 index 000000000..5f6a01bc0 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/staticarrays.html @@ -0,0 +1,91 @@ + + + + + + + + + + + + + +

+

+

+ . + .

+

+ :

+
+

array [ 1, + ..., + N] of

+
+

. + + a..b, + a b +- , . :

+
+

type
+  MyEnum = (w1,w2,w3,w4,w5);
+  Arr = array [1..10] of integer;
+ var
+  a1,a2: Arr;
+  b: array ['a'..'z',w2..w4] of string;
+  c: array [1..3] of array [1..4] of real;

+
+

+

:

+
+

var
+  a: Arr := (1,2,3,4,5,6,7,8,9,0);
+  cc: array [1..3,1..4] of real := + ((1,2,3,4), (5,6,7,8), (9,0,1,2));

+
+

+

, + :

+
+

a1 := a2;

+
+

+

write , + :

+
var a: Arr := (1,2,3,4,5,6,7,8,9,0);
+ var m := array [1..3,1..3] of integer := + ((1,2,3),(4,5,6),(7,8,9));
writeln(a); // [1,2,3,4,5]
writeln(m); // + [[1,2,3],[4,5,6],[7,8,9]]
+

+

+ - + - :

+
+

procedure p(a: Arr); // + - !
+ ...
+ p(a1);

+
+

, + . + , , + - :

+
+

type Arr = array [2..10] + of integer;

procedure Squares(var + a: Arr);
begin
  for + var i:= Low(a) to High(a) do
    + a[i] := Sqr(a[i]);
end;

procedure + PrintArray(const a: Arr);
begin
  + for var i:= Low(a) to + High(a) do
    Print(a[i])
end;
+
var a: Arr := (1,3,5,7,9,2,4,6,8);

+ begin
  Squares(a);
  PrintArray(a);
end.

+
+

+ Low High.

+ + + diff --git a/PABCNetHelp/LangGuide/Types/string.html b/PABCNetHelp/LangGuide/Types/string.html new file mode 100644 index 000000000..2d62de236 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/string.html @@ -0,0 +1,90 @@ + + + + + + + + + + + + + + + + +

+

string, +char .

+

. , : +s[i] i- + , . i + , .

+

: < > <= +>= = <>. +: s1 < s2 + i s1[i]<s2[i] + , s1 +s2.

+

+ + () . : ''+'' += ''.

+

+= + - - . :

+
+

var s: string := '';
+ s += ''; // s = ''

+
+

, + :

+

s := ': '+15; // s = ': 15'
s := +20.5+''; // s = '20.5'
s += 1; // s = '20.51'

+

*: +s*n n*s + , s, + n :

+

s := '*'*10; // s = '**********'
    +s := 5*'ab' // s = 'ababababab'
    s := 'd'; s *= 3; // s = +'ddd'   

+

System.String + .NET . + , +System.String. , .NET - +, PascalABC.NET . +, s[i] ( .NET +). , string + PascalABC.NET +:

+
+

var s2 := 'Hello';
+ var s1 := s2;
+ s1[2] := 'a';

+
+

s2 . + +, .. , Delphi Object +Pascal, .NET.

+

, nil, + NET-.

+

, PascalABC.NET + . +string[n], n - + , . , , + . +Delphi Object Pascal +shortstring=string[255].

+

.

+

string.

+ + + diff --git a/PABCNetHelp/LangGuide/Types/stringmembers.html b/PABCNetHelp/LangGuide/Types/stringmembers.html new file mode 100644 index 000000000..c3339b675 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/stringmembers.html @@ -0,0 +1,312 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

string

+

string +PascalABC.NET , + , .

+

string +, . , +, .. .NET .

+

String

+ + + + + + + + + + + + + +
s[i] . + i- s. + PascalABC.NET 1. +
Length: integer
+

String

+ + + + + + + + + + + + + + + + + + + + + +
String.Compare(s1,s2: string): integer s1 + s2. <0 + s1<s2, =0 s1=s2 + >0 s1>s2
String.Compare(s1,s2: string; ignorecase: boolean): + integer . ignorecase=True, +
String.Format(fmtstr: string, params arr: array + of object): string; arr + fmtstr
String.Join(ss: array of string; delim: + string): string , + ss delim +
+

String

+

, , + , +. , , .

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Contains(s: string): boolean True, + s, False +
EndsWith(s: string): boolean True, + s, False +
IndexOf(s: string): integer + s -1 +
IndexOf(s: string; start,count: integer): integer + s -1 + . start + count
IndexOfAny(cc: array of char): integer +
Insert(from: integer; s: string): string , + s from
LastIndexOf(s: string): integer + s
LastIndexOf(s: string; start,count: integer): integer + s -1 + . start + count
LastIndexOfAny(a: array of char): integer +
PadLeft(n: integer): string , + + n
PadRight(n: integer): string , + + n
Remove(from,len: integer): string , + len from
Replace(s1,s2: string): string , + s1 + s2
Split(params delim: array + of char): + array of string , + , + delim ( - )
StartsWith(s: string): boolean True, + s, False +
Substring(from,len: integer): string + from len
ToCharArray: array of char +
ToLower: string ,
ToUpper: string ,
Trim: string , +
TrimEnd(params cc: + array of char): string , + cc
TrimStart(params cc: + array of char): string , +   cc
+

String

+

- .NET, + PascalABC.NET.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Inverse: string
Print ,
Println , , +
ReadInteger(var from: integer): + integer from . + from
ReadReal(var from: integer): real from + . from
ReadWord(var from: integer): + string + from . from +
ToInteger: integer . + ,
ToIntegers: array of integer , . + . ,
ToReal: real + . ,
ToReals: array of real , . + . , +
ToWords(params delim: array of + char): array of string , + , + delim ( - ). + s.Split . + , , + delim
+ + + diff --git a/PABCNetHelp/LangGuide/Types/tuples.html b/PABCNetHelp/LangGuide/Types/tuples.html new file mode 100644 index 000000000..96b2822f0 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/tuples.html @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + +

+

- , +. , +. , . , + : + .

+

+

System.Tuple .NET:

+
+ var t: System.Tuple<string,integer>; +
+ +

:

+
+ var t: (string,integer); +
+

. + - , , , - .

+ +

+

+ . :

+
+ t := ('',23); +
+

:

+
+ var t1 := ('',(5,3,4)); // , +   +
+ +

+

, + :

+
+ writeln(t);  // (,23)
writeln(t1); // (,(5,3,4))
+ +

+

() Item1, Item2 ..:

+
+ Print(t.Item1,t.Item2); +
+

:

+
+ Print(t[0],t[1]); +
+

.

+

: :

+
+ t[1] := 20; //  
+

( )

+

, + :

+
+ var t := ('',23);
var name: + string;
var age: integer;
(name,age) := t;
+
+

, + , +. + :

+
+ name := t[0];
age := t[1];
 
+

. +, a b, + :

+ +
+ (a,b) := (b,a);
+

, + :

+ +
+ (a,b) := (1,2,3);
+

:

+ +
+ (var a, var b) := (1,2);
+

+ +
+ var (a,b) := (1,2);
+

+

. + + .

+

, , , + :

+
+ function SP(a,b: real) := (a*b,2*(a+b));  
+

, + :

+
+ var (S,P) := SP(2,3);  
+

 

+ + + + diff --git a/PABCNetHelp/LangGuide/Types/typecompatibility.html b/PABCNetHelp/LangGuide/Types/typecompatibility.html new file mode 100644 index 000000000..d8cc03f60 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/typecompatibility.html @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + +

+

+

, T1 +T2 , + type T1 += T2. ,

+
+

type
+  IntArray = array [1..10] of integer;
+  IntArrayCopy = IntArray;
+ var
+  a1: IntArray;
+  a2: IntArrayCopy;
+  b1,c1: array [1..15] of integer;
+  b2: array [1..15] of integer;

+
+

a1 +a2 b1 + c1 +, b1 b2 +- .

+

+

, T1 +T2 , + :

+
    +
  1. T1 T2 +
  2. +
  3. T1 T2 + -
  4. +
  5. T1 T2 + -
  6. +
  7. T1 T2 + -
  8. +
  9. T1 T2 + - ( + - )
  10. +
+

+ , , + . + , , + . + , PascalABC.NET + , , , + , + .

+

T1 +T2 +, T1 + - T2.

+

+

, T1 +T2 , + :

+
    +
  1. T1 T2
  2. +
  3. T1 T2 +
  4. +
  5. T1 T2 +
  6. +
  7. - - +
  8. +
  9. T1 T2  + - +
  10. +
+

+

, T2 + T1 + T2 + T1, :

+
    +
  1. T1 T2 +
  2. +
  3. T1 - , T2 + -
  4. +
  5. T1 - , T2 + -
  6. +
  7. T1 - pointer, + T2 -
  8. +
  9. T1 - , + T2=nil
  10. +
  11. T1 - , + T2 - +
  12. +
  13. T1, T2 + - , - . + PascalABC.NET + Object, + ( ) + Object
  14. +
  15. T1 - , T2 + - ,
  16. +
+

T2 + T1, + , T2 + T1

+ + + diff --git a/PABCNetHelp/LangGuide/Types/typesprojection.html b/PABCNetHelp/LangGuide/Types/typesprojection.html new file mode 100644 index 000000000..d05092df5 --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/typesprojection.html @@ -0,0 +1,101 @@ + + + + + + + + + + + + +

.NET

+

PascalABC.NET + .NET. + PascalABC.NET + .NET.

+

 

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
PascalABC.NET .NET
int64 System.Int64
uint64 System.UInt64
integer, longintSystem.Int32
longword, cardinalSystem.UInt32
BigIntegerSystem.BigInteger
smallint System.Int16
word System.UInt16
shortint System.SByte
byte System.Byte
boolean System.Boolean
real System.Double
double System.Double
char System.Char
string System.String
object System.Object
array of T T[]
recordstruct
+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/Types/value_ref_types.html b/PABCNetHelp/LangGuide/Types/value_ref_types.html new file mode 100644 index 000000000..d9332abef --- /dev/null +++ b/PABCNetHelp/LangGuide/Types/value_ref_types.html @@ -0,0 +1,112 @@ + + + + + + + + + + + + + +

+

PascalABC.NET : +. , , +, , . +, , .

+

: +, , . + : + , + .

+

+

+ . +.

+
+

var i: integer; // i
+ i := 5;

+
+

+ . , + nil ( ). + :

+
+

type Person = auto class
  + name: string;
  age: integer;
end;

+

var p: Person; // p nil, +
p := new Person('',20); // +
 

+
+

+

. + , . +:

+
+

var a,a1: array [1..1000000] + of integer;
a1 := a; // 1000000 +

+
+

+, + :

+
+

var p1: Person;
p1 := p; //

+
+

+

. +, .

+
+

type PersonRec = record
  + name: string;
  age: integer;
end;
var
p,p1: + PersonRec;
p.name := ''; p.age := 20;
p1.name := ''; + p1.age := 20;
writeln(p1=p); // True

+
+

, + .

+
+

var p := new Person('',20);
var + p1 := new Person('',20);
writeln(p1=p); // False

+
+

+

, + . + . + . + .

+

+ . + . + , , + , + +.

+

 

+

+ - . + , , + :

+
+

type Arr = array [1..100] + of integer;

procedure + PrintArray(const a: Arr; n: integer);
begin
  + for var i:=1 to + n do
    Print(a[i])
end;

+
+

, , . + , + .

+
+

procedure + Change666(a: array of integer);
begin
  + a[0] := 666;
end;

+
+

+ +.

+

 

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/_ProgrStruct_Defs/comments.html b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/comments.html new file mode 100644 index 000000000..08edb6f37 --- /dev/null +++ b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/comments.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + +

+

- , + .

+

PascalABC.NET .

+

{ } (* +*) :

+
+

{
+ }

+

(*
+ *)

+
+

+ // + :

+
+

var Version: integer; //

+
+

:

+
+

{
+ (* *)}

+
+

 

+

 

+ + + diff --git a/PABCNetHelp/LangGuide/_ProgrStruct_Defs/constdef.html b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/constdef.html new file mode 100644 index 000000000..1d3a27871 --- /dev/null +++ b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/constdef.html @@ -0,0 +1,44 @@ + + + + + + + + + + + + +

+

+ +const, +

+
+ + = ; +
+

+
+ : + = ; +
+

:

+
+

const
+
  Pi = 3.14;
+   Count = 10;
+   Name = 'Mike';
+  DigitsSet = ['0'..'9'];
+   Arr: array [1..5] of integer = (1,3,5,7,9);
+  Rec: record name: string; + age: integer end = (name: ''; + age: 23);
+  Arr2: array [1..2,1..2] of + real = ((1,2),(3,4));

+
+

 

+ + + diff --git a/PABCNetHelp/LangGuide/_ProgrStruct_Defs/identifiers.html b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/identifiers.html new file mode 100644 index 000000000..8e87d18d6 --- /dev/null +++ b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/identifiers.html @@ -0,0 +1,60 @@ + + + + + + + + + + + + + +

+ , , , , +, . + , . + "_".

, +a1, _h, b123 - , 1a - .

+

+.

+

, + +:

+

and array as auto begin case class const constructor destructor div +do downto else end event except extensionmethod file finalization finally for +foreach function goto if implementation in inherited initialization interface is +label lock loop mod nil not of operator or procedure program property raise record +repeat sealed set sequence shl shr sizeof template then to try type typeof until +uses using var where while with xor

+

+( ):

+

abstract default external forward internal on overload override +params private protected public read reintroduce unit virtual write

+

.

+

.NET. + PascalABC.NET + +.

+

. :

+
+

var a: System.Array;

+
+

Array + System, array +.

+

+& . +. :

+
+

uses System;
+ var a: &Array;

+
+

 

+ + diff --git a/PABCNetHelp/LangGuide/_ProgrStruct_Defs/index_progrstruct.html b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/index_progrstruct.html new file mode 100644 index 000000000..33f7c48fa --- /dev/null +++ b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/index_progrstruct.html @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + +

:

+

, +, . + + . + .

+

  PascalABC.NET :

+
+

program + ;
+uses
+
begin
  +
end.

+
+

+.

+

+ +uses + +uses, + +uses, + .NET, .

+

:

+ +

+ .

+

begin/end, + , " + ". + +, .

+

+uses + + .

+

:

+
+ program MyProgram;
+ var
+  a,b: integer;
+  x: real;
+ begin
+
  readln(a,b);
+   x := a/b;
+   writeln(x);
+ end.
+

+
+ uses GraphABC;
+ begin
+
  var x := 100;
  var y := + 100;
  var r := 50;
  Circle(x,y,r);
+ end.
+ + + diff --git a/PABCNetHelp/LangGuide/_ProgrStruct_Defs/labeldef.html b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/labeldef.html new file mode 100644 index 000000000..aa2d3671c --- /dev/null +++ b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/labeldef.html @@ -0,0 +1,24 @@ + + + + + + + + + + + + +

+

+ label, + , . + :

+
+ label a1,l2,777777;
+

+goto.

+ + + diff --git a/PABCNetHelp/LangGuide/_ProgrStruct_Defs/scope.html b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/scope.html new file mode 100644 index 000000000..93497b2b0 --- /dev/null +++ b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/scope.html @@ -0,0 +1,126 @@ + + + + + + + + + + + + + +

+

+ + . . + .

+

+ , , , +, + + - , + . , + ( + ). + , .NET + .

+

+ + (.. , ) + , . , , , + , +uses.

+

+ , , + (for, foreach). + i +. , :

+
+

var a: array of integer := (3,5,7);
+ for
i: integer := 1 to 9 do
+  write(a[i]);
+ foreach i: integer in a do
+  write(i);

+
+

+ , , +, . ,

+
+

var i: integer;

+

procedure p;
+ var i: integer;
+ begin
+  i := 5;
+ end;

+
+

5 i, +p; p + i +.

+

, , , + . , +:

+
+

var i: integer;
+ begin
+   var i: integer; //
+ end.

+
+

, , , , + . + + +inherited:

+
+

type
+  A=class
+    i: integer;
+    procedure p;
+    begin
+      i := 5;
+    end;
end;
+  B=class(A)
+    i: integer;
+    procedure p;
+    begin
+      i := 5;
+      inherited p;
+    end;
end;

+
+

+: , , + , .

+

+ : + , , , + . ,

+
+

uses unit1,unit2;
+ begin
+  id := 2;
+ end.

+
+

id +, unit2, unit1. + id. + , unit1 +, unit2 , + unit2.

+

- unit1 unit2 +- id, + , +.:

+
+

uses unit1,unit2;
+ begin
+  unit1.id := 2;
+ end.

+
+

 

+ + + \ No newline at end of file diff --git a/PABCNetHelp/LangGuide/_ProgrStruct_Defs/typesdef.html b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/typesdef.html new file mode 100644 index 000000000..36cacd8f9 --- /dev/null +++ b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/typesdef.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + +

+

+ type, +

+
+ = ; +
+,
+

type
+
  arr10 = array [1..10] of integer;
+   myint = integer;
+  pinteger = ^integer;
  IntFunc = function(x: + integer): integer;

+
+

( , + , , ) . + + , + . +

+ :

+
+

type
  A = class
+
    i: integer;
+    constructor Create(ii: integer);
+    begin
+      i:=ii;
+    end;
end;

+
+

+, : +

+

type
 
int = integer;
  double = real;

+
+

, .. - + . +

+

type
  Dict<K,V> = Dictionary<K,V>;
  + Arr<T> = array of T;

+
+

- + :

+

var
  a: Arr<integer>;
  d: + Dict<string,integer>;

+
+

+ :

+

type
+
  PNode = ^TNode;
+  TNode = record
+    data: integer;
+    next: PNode;
end;

+
+

, + type.

Delphi Object Pascal + :

+
+

type
+
  TNode = record
+    data: integer;
+    next: ^TNode;
end;

+
+

, () , + :

+
+

type
+
  Node = class
+    data: integer;
+    next: Node;
end;

+
+ + + diff --git a/PABCNetHelp/LangGuide/_ProgrStruct_Defs/vardef.html b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/vardef.html new file mode 100644 index 000000000..6380ef40d --- /dev/null +++ b/PABCNetHelp/LangGuide/_ProgrStruct_Defs/vardef.html @@ -0,0 +1,77 @@ + + + + + + + + + + + + +

+

, +   begin/end.

+

+ var, +

+
+ : + ;
+

+
+ : + := ; +
+

+
+ : + = ; +// Delphi +
+

+
+ := + ; +
+

. :

+
+

var
a,b,c: integer;
+  d: real := 3.7;
+  s := 'PascalABC forever';
+  al := new List<integer>;

+   p1 := 1;

+
+

+ .

+

+. + + .

+

, - + for +foreach.

+

. + - .

+

+

( + ) :

+ +
+ var t := (1,2);
(var a, var b) := (1,2);
+

+ +
+ var (a,b) := (1,2);
+

+:

+
+ function SP(a,b: real) := (a*b,2*(a+b));  
+ ...
+ var (S,P) := SP(2,3); +
+ + + diff --git a/PABCNetHelp/LangGuide/index_lang_guide.html b/PABCNetHelp/LangGuide/index_lang_guide.html new file mode 100644 index 000000000..f2322e8bc --- /dev/null +++ b/PABCNetHelp/LangGuide/index_lang_guide.html @@ -0,0 +1,113 @@ + + + + + PascalABC.NET + + + + +

PascalABC.NET

+

PascalABC.NET - Pascal +, Pascal, + Delphi Object Pascal, , +, .NET-. +PascalABC.NET - + : , - +, .

+

, .NET- + , Pascal.

+

PascalABC.NET.

+

+ +

+ +

+ +

+ +

-

+
    +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • ( )
  • +
+

+ +

+ +

+ + + + diff --git a/PABCNetHelp/LinqDocGen/ExecDoc1.pas b/PABCNetHelp/LinqDocGen/ExecDoc1.pas new file mode 100644 index 000000000..b34d3608e --- /dev/null +++ b/PABCNetHelp/LinqDocGen/ExecDoc1.pas @@ -0,0 +1,9 @@ +begin + var funcs := ReadLines('.pas').Where(s->s.startswith('function')).Select(s->s.Replace('<','<').Replace('>','>')); + funcs := funcs.Select(s->s.Replace('<','<').Replace('>','>')).Select(s->s.Insert(8,'').Insert(0,'')); + var comments := ReadLines('.pas').Where(s->s.startswith('///')).Select(s->s.Remove(0,4)); + comments := comments.Select(s->begin s := Trim(s); if s[s.Length]<>'.' then s += '.'; Result := s; end); + var z := funcs.Zip(comments,(f,c)->''#13#10''+f+''+NewLine+'
'+'      '+c+#13#10''); + z := ''+z+'
'; + WriteAllLines('a.html',z); +end. \ No newline at end of file diff --git a/PABCNetHelp/LinqDocGen/ExecDoc2.pas b/PABCNetHelp/LinqDocGen/ExecDoc2.pas new file mode 100644 index 000000000..23f96d845 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/ExecDoc2.pas @@ -0,0 +1,63 @@ +begin + var r := new Regex('IEnumerable<(\w+)>'); + + var section := ''; + var funcs := ReadLines('.pas') + .Select(s->begin + if s.StartsWith('// ') then + begin + section := s.Remove(0,3); + writeln(section); + end; + Result := s + end) + .Where(s->s.startswith('function IEnumerable<') or s.startswith('procedure IEnumerable<')).Print(NewLine) + .Select(s->s.Replace('function IEnumerable.','function ')) + .Select(s->s.Replace('procedure IEnumerable.','procedure ')) + .Select(s->s.Replace('function IEnumerable<>.','function ')) + .Select(s->r.Replace(s,'sequence of $1')) + .Select(s->s.Replace('<','<').Replace('>','>')) + .Select(s->s.Replace('sequence of ','sequence of ')) + .Select(s->s.Insert(9,'
').Insert(0,'')) + .Select(s->Rec(section,s)); + var comments := ReadLines('.pas').Where(s->s.startswith('///')).Select(s->s.Remove(0,4)); + comments := comments.Select(s->begin s := Trim(s); if s[s.Length]<>'.' then s += '.'; Result := s; end); + + var z := funcs.Zip(comments,(f,c)->Rec(f.Item1,f.Item2,c)); + + var g := z.GroupBy(x->x.Item1); + + var toc := Seq(''); + foreach var sect in g do + begin + var Key: string := sect.Key; + //writeln(Key); + var qq := Key.SkipWhile(c->not (c in ['a'..'z','A'..'Z'])); + Key := new string(qq.ToArray()); + var keys := key.ToWords(' ',',').Select(s->''); + Writeln(keys); + var sq := sect.Select(s->''#13#10''+s.Item2+''+NewLine+'
'+'      '+s.Item3+#13#10''); + sq := '

'+sect.Key+'

'+'

sequence of T.

'+''+sq+'
'; + sq := sq + '

'; + sq := ''+sq+''; + sq := '' + + keys + + '' + + sq; + WriteLines('Files\'+Key+'.html',sq); + var s1 := ''; + var s2 := ''; + toc := toc + '
  • '+s1; + toc := toc + s2; + toc := toc + ''; + //Println(sect.Key); + //Println(sect.AsEnumerable); + end; + WriteLines('toc.html',toc); + + //g.Print(NewLine+NewLine); + + {var z := funcs.Zip(comments,(f,c)->''#13#10''+f+''+NewLine+'
    '+'      '+c+#13#10''); + z := ''+z+'
    '; + WriteAllLines('a.html',z);} +end. \ No newline at end of file diff --git a/PABCNetHelp/LinqDocGen/ExecDoc3.pas b/PABCNetHelp/LinqDocGen/ExecDoc3.pas new file mode 100644 index 000000000..8ff2ac8bd --- /dev/null +++ b/PABCNetHelp/LinqDocGen/ExecDoc3.pas @@ -0,0 +1,18 @@ +function Sk(s:string): string; +begin + var q := s.SkipWhile(c->not (c in ['a'..'z','A'..'Z'])); + Result := new string(q.ToArray()) +end; + +begin + var files := ReadLines('.pas').Where(s->s.startswith('// ')).Select(s->Rec(s.Remove(0,3),sk(s))); + var z := files.Select(p->'
  • '+p.Item1+'
  • '); + //files.Print(NewLine); + WriteAllLines('d.html',z); + + + //g.Print(NewLine+NewLine); + + {var z := funcs.Zip(comments,(f,c)->''#13#10''+f+''+NewLine+'
    '+'      '+c+#13#10''); + z := ''+z+'
    ';} +end. \ No newline at end of file diff --git a/PABCNetHelp/LinqDocGen/Files/Aggregate.html b/PABCNetHelp/LinqDocGen/Files/Aggregate.html new file mode 100644 index 000000000..123b1ef11 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Aggregate.html @@ -0,0 +1,20 @@ + + + + +

    Aggregate

    sequence of T.

    + + + +
    +function Aggregate(func: (T,T)->T): T; +
           . . +
    +function Aggregate<Accum>(seed: T; func: (Accum,T)->Accum): T; +
           . . . +
    +function Aggregate<Accum,Res>(seed: T; func: (Accum,T)->Accum; resultSelector: Accum->Res): T; +
           . , . . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Any, All.html b/PABCNetHelp/LinqDocGen/Files/Any, All.html new file mode 100644 index 000000000..c8a256bae --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Any, All.html @@ -0,0 +1,21 @@ + + + + + +

    Any, All

    sequence of T.

    + + + +
    +function Any(): boolean; +
          , - . +
    +function Any(predicate: T->boolean): boolean; +
          , - . +
    +function All(predicate: T->boolean): boolean; +
          , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/AsEnumerable.html b/PABCNetHelp/LinqDocGen/Files/AsEnumerable.html new file mode 100644 index 000000000..5bf904c4f --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/AsEnumerable.html @@ -0,0 +1,12 @@ + + + + +

    AsEnumerable

    sequence of T.

    + +
    +function AsEnumerable(): sequence of T; +
           , IEnumerable. +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Cast.html b/PABCNetHelp/LinqDocGen/Files/Cast.html new file mode 100644 index 000000000..843587689 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Cast.html @@ -0,0 +1,12 @@ + + + + +

    Cast

    sequence of T.

    + +
    +function Cast<Res>(): sequence of Res; +
           System.Collections.IEnumerable . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Concat.html b/PABCNetHelp/LinqDocGen/Files/Concat.html new file mode 100644 index 000000000..1283581d0 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Concat.html @@ -0,0 +1,12 @@ + + + + +

    Concat

    sequence of T.

    + +
    +function Concat(second: sequence of T): sequence of T; +
           , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Contains.html b/PABCNetHelp/LinqDocGen/Files/Contains.html new file mode 100644 index 000000000..a88145dae --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Contains.html @@ -0,0 +1,16 @@ + + + + +

    Contains

    sequence of T.

    + + +
    +function Contains(value: T): boolean; +
          , , . +
    +function Contains(value: T; comparer: IEqualityComparer<T>): boolean; +
          , , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Count.html b/PABCNetHelp/LinqDocGen/Files/Count.html new file mode 100644 index 000000000..b3a12593d --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Count.html @@ -0,0 +1,24 @@ + + + + +

    Count

    sequence of T.

    + + + + +
    +function Count(): integer; +
           . +
    +function Count(predicate: T->boolean): integer; +
           , , . +
    +function LongCount(): int64; +
           Int64, . +
    +function LongCount(predicate: T->boolean): int64; +
           Int64, , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/DefaultIfEmpty.html b/PABCNetHelp/LinqDocGen/Files/DefaultIfEmpty.html new file mode 100644 index 000000000..59b29aa54 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/DefaultIfEmpty.html @@ -0,0 +1,16 @@ + + + + +

    DefaultIfEmpty

    sequence of T.

    + + +
    +function DefaultIfEmpty(): sequence of T; +
           , , . +
    +function DefaultIfEmpty(defaultValue: T): sequence of T; +
           , , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Distinct.html b/PABCNetHelp/LinqDocGen/Files/Distinct.html new file mode 100644 index 000000000..6d63bbdb2 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Distinct.html @@ -0,0 +1,16 @@ + + + + +

    Distinct

    sequence of T.

    + + +
    +function Distinct(): sequence of T; +
           . +
    +function Distinct(comparer: IEqualityComparer<T>): sequence of T; +
           , comparer. +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/ElementAt, ElementAtOrDefault.html b/PABCNetHelp/LinqDocGen/Files/ElementAt, ElementAtOrDefault.html new file mode 100644 index 000000000..78f3ae329 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/ElementAt, ElementAtOrDefault.html @@ -0,0 +1,17 @@ + + + + + +

    ElementAt, ElementAtOrDefault

    sequence of T.

    + + +
    +function ElementAt(index: integer): T; +
           . +
    +function ElementAtOrDefault(index: integer): T; +
           , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/First, FirstOrDefault.html b/PABCNetHelp/LinqDocGen/Files/First, FirstOrDefault.html new file mode 100644 index 000000000..2e7b38347 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/First, FirstOrDefault.html @@ -0,0 +1,25 @@ + + + + + +

    First, FirstOrDefault

    sequence of T.

    + + + + +
    +function First(): T; +
           . +
    +function First(predicate: T->boolean): T; +
           , . +
    +function FirstOrDefault(): T; +
           , . +
    +function FirstOrDefault(predicate: T->boolean): T; +
           , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/ForEach.html b/PABCNetHelp/LinqDocGen/Files/ForEach.html new file mode 100644 index 000000000..7ea059ab7 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/ForEach.html @@ -0,0 +1,12 @@ + + + + +

    ForEach

    sequence of T.

    + +
    +procedure ForEach(action: T->()); +
           . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/GroupBy.html b/PABCNetHelp/LinqDocGen/Files/GroupBy.html new file mode 100644 index 000000000..cf760a46a --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/GroupBy.html @@ -0,0 +1,40 @@ + + + + +

    GroupBy

    sequence of T.

    + + + + + + + + +
    +function GroupBy<Key>(keySelector: T->Key): IEnumerable<IGrouping<Key,T>>; +
           ; . +
    +function GroupBy<Key>(keySelector: T->Key; comparer: System.Collections.Generic.IEqualityComparer<Key>): IEnumerable<IGrouping<Key,T>>; +
           , ; . +
    +function GroupBy<Key,Element>(keySelector: T->Key; elementSelector: T->Element): IEnumerable<IGrouping<Key,T>>; +
           . ; . +
    +function GroupBy<Key,Element>(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer<Key>): IEnumerable<IGrouping<Key,Element>>; +
           . , . +
    +function GroupBy<Key,Res>(keySelector: T->Key; resultSelector: (Key,sequence of T)->Res): sequence of Res; +
           . +
    +function GroupBy<Key,Element,Res>(keySelector: T->Key; elementSelector: T->Element; resultSelector: (Key,sequence of Element)->Res): sequence of Res; +
           . . +
    +function GroupBy<Key,Res>(keySelector: T->Key; resultSelector: (Key,sequence of T)->Res; comparer: IEqualityComparer<Key>): sequence of Res; +
           . . +
    +function GroupBy<Key,Element,Res>(keySelector: T->Key; elementSelector: System.T->Element; resultSelector: (Key,sequence of Element)->Res; comparer: IEqualityComparer<Key>): sequence of Res; +
           . , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/GroupJoin.html b/PABCNetHelp/LinqDocGen/Files/GroupJoin.html new file mode 100644 index 000000000..80af9d0a9 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/GroupJoin.html @@ -0,0 +1,16 @@ + + + + +

    GroupJoin

    sequence of T.

    + + +
    +function GroupJoin<TInner,Key,Res>(inner: sequence of TInner; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,sequence of TInner)->Res): sequence of Res; +
           . resultSelector . +
    +function GroupJoin<TInner,Key,Res>(inner: sequence of TInner; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,sequence of TInner)->Res; comparer: IEqualityComparer<Key>): sequence of Res; +
           . . resultSelector . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Join.html b/PABCNetHelp/LinqDocGen/Files/Join.html new file mode 100644 index 000000000..c4dc8d15d --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Join.html @@ -0,0 +1,16 @@ + + + + +

    Join

    sequence of T.

    + + +
    +function Join<TInner,Key,Res>(inner: sequence of TInner; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,TInner)->Res): sequence of Res; +
           . resultSelector . +
    +function Join<TInner,Key,Res>(inner: sequence of TInner; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,TInner)->Res; comparer: System.Collections.Generic.IEqualityComparer<Key>): sequence of Res; +
           . resultSelector . comparer. +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/JoinIntoString.html b/PABCNetHelp/LinqDocGen/Files/JoinIntoString.html new file mode 100644 index 000000000..cd5b6b8bb --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/JoinIntoString.html @@ -0,0 +1,12 @@ + + + + +

    JoinIntoString

    sequence of T.

    + +
    +function JoinIntoString(delim: string := ' '): string; +
           , , delim . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Last, LastOrDefault.html b/PABCNetHelp/LinqDocGen/Files/Last, LastOrDefault.html new file mode 100644 index 000000000..f6970f5af --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Last, LastOrDefault.html @@ -0,0 +1,25 @@ + + + + + +

    Last, LastOrDefault

    sequence of T.

    + + + + +
    +function Last(): T; +
           . +
    +function Last(predicate: T->boolean): T; +
           , . +
    +function LastOrDefault(): T; +
           , . +
    +function LastOrDefault(predicate: T->boolean): T; +
           , , , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Min, Max.html b/PABCNetHelp/LinqDocGen/Files/Min, Max.html new file mode 100644 index 000000000..2cda99ea1 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Min, Max.html @@ -0,0 +1,25 @@ + + + + + +

    Min, Max

    sequence of T.

    + + + + +
    +function Min(): ; +
           . +
    +function Min(selector: T->): ; +
           . +
    +function Max(): ; +
           . +
    +function Max(selector: T->): ; +
           . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/OfType.html b/PABCNetHelp/LinqDocGen/Files/OfType.html new file mode 100644 index 000000000..df9473a13 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/OfType.html @@ -0,0 +1,12 @@ + + + + +

    OfType

    sequence of T.

    + +
    +function OfType<Res>(): sequence of Res; +
           System.Collections.IEnumerable . . . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/OrderBy, OrderByDescending.html b/PABCNetHelp/LinqDocGen/Files/OrderBy, OrderByDescending.html new file mode 100644 index 000000000..8563751d7 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/OrderBy, OrderByDescending.html @@ -0,0 +1,25 @@ + + + + + +

    OrderBy, OrderByDescending

    sequence of T.

    + + + + +
    +function OrderBy<Key>(keySelector: T->Key): System.Linq.IOrderedEnumerable<T>; +
           . keySelector - , . +
    +function OrderBy<Key>(keySelector: T->Key; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
           comparer . keySelector - , . +
    +function OrderByDescending<Key>(keySelector: T->Key): System.Linq.IOrderedEnumerable<T>; +
           . keySelector - , . +
    +function OrderByDescending<Key>(keySelector: T->Key; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
           comparer . keySelector - , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Print.html b/PABCNetHelp/LinqDocGen/Files/Print.html new file mode 100644 index 000000000..1b1fa2d43 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Print.html @@ -0,0 +1,16 @@ + + + + +

    Print

    sequence of T.

    + + +
    +function Print(delim: string := ' '): sequence of T; +
           , delim . +
    +function Println(delim: string := ' '): sequence of T; +
           , delim , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Reverse.html b/PABCNetHelp/LinqDocGen/Files/Reverse.html new file mode 100644 index 000000000..9e56ef2ec --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Reverse.html @@ -0,0 +1,12 @@ + + + + +

    Reverse

    sequence of T.

    + +
    +function Reverse(): sequence of T; +
           . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Select.html b/PABCNetHelp/LinqDocGen/Files/Select.html new file mode 100644 index 000000000..cff78d3bd --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Select.html @@ -0,0 +1,16 @@ + + + + +

    Select

    sequence of T.

    + + +
    +function Select<Res>(selector: T->Res): sequence of Res; +
           selector. , . +
    +function Select<Res>(selector: (T,integer)->Res): sequence of Res; +
           selector, . , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/SelectMany.html b/PABCNetHelp/LinqDocGen/Files/SelectMany.html new file mode 100644 index 000000000..c092b4abc --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/SelectMany.html @@ -0,0 +1,24 @@ + + + + +

    SelectMany

    sequence of T.

    + + + + +
    +function SelectMany<Res>(selector: T->sequence of Res): sequence of Res; +
           . . +
    +function SelectMany<Res>(selector: (T,integer)->sequence of Res): sequence of Res; +
           . . +
    +function SelectMany<Coll,Res>(collSelector: (T,integer)->sequence of Coll; resultSelector: (T,Coll)->Res): sequence of Res; +
           , . . . +
    +function SelectMany<Coll,Res>(collSelector: T->sequence of Coll; resultSelector: (T,Coll)->Res): sequence of Res; +
           , . . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/SequenceEqual.html b/PABCNetHelp/LinqDocGen/Files/SequenceEqual.html new file mode 100644 index 000000000..1419fcca3 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/SequenceEqual.html @@ -0,0 +1,16 @@ + + + + +

    SequenceEqual

    sequence of T.

    + + +
    +function SequenceEqual(second: sequence of T): boolean; +
          , . +
    +function SequenceEqual(second: sequence of T; comparer: IEqualityComparer<T>): boolean; +
          , , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Single, SingleOrDefault.html b/PABCNetHelp/LinqDocGen/Files/Single, SingleOrDefault.html new file mode 100644 index 000000000..a4e07051d --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Single, SingleOrDefault.html @@ -0,0 +1,25 @@ + + + + + +

    Single, SingleOrDefault

    sequence of T.

    + + + + +
    +function Single(): T; +
           , 1. +
    +function Single(predicate: T->boolean): T; +
           , , , . +
    +function SingleOrDefault(): T; +
           , ; , . +
    +function SingleOrDefault(predicate: T->boolean): T; +
           , , , ; , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Sorted.html b/PABCNetHelp/LinqDocGen/Files/Sorted.html new file mode 100644 index 000000000..12dc7c090 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Sorted.html @@ -0,0 +1,12 @@ + + + + +

    Sorted

    sequence of T.

    + +
    +function Sorted(): sequence of T; +
           . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Sum, Average.html b/PABCNetHelp/LinqDocGen/Files/Sum, Average.html new file mode 100644 index 000000000..98b05e710 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Sum, Average.html @@ -0,0 +1,25 @@ + + + + + +

    Sum, Average

    sequence of T.

    + + + + +
    +function Sum(): ; +
           . +
    +function Sum(selector: T->): ; +
           , . +
    +function Average(): real; +
           . +
    +function Average(selector: T->): real; +
           , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Take, TakeWhile, Skip, SkipWhile.html b/PABCNetHelp/LinqDocGen/Files/Take, TakeWhile, Skip, SkipWhile.html new file mode 100644 index 000000000..9990fa737 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Take, TakeWhile, Skip, SkipWhile.html @@ -0,0 +1,35 @@ + + + + + + + +

    Take, TakeWhile, Skip, SkipWhile

    sequence of T.

    + + + + + + +
    +function Take(count: integer): sequence of T; +
           count . +
    +function TakeWhile(predicate: T->boolean): sequence of T; +
           , , . +
    +function TakeWhile(predicate: (T,integer)->boolean): sequence of T; +
           , , ( ). +
    +function Skip(count: integer): sequence of T; +
           count . +
    +function SkipWhile(predicate: T->boolean): sequence of T; +
           , , . +
    +function SkipWhile(predicate: (T,integer)->boolean): sequence of T; +
           , , ( ). +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/ThenBy,ThenByDescending.html b/PABCNetHelp/LinqDocGen/Files/ThenBy,ThenByDescending.html new file mode 100644 index 000000000..2f81c4265 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/ThenBy,ThenByDescending.html @@ -0,0 +1,25 @@ + + + + + +

    ThenBy,ThenByDescending

    sequence of T.

    + + + + +
    +function ThenBy<Key>(keySelector: T->Key): System.Linq.IOrderedEnumerable<T>; +
           . keySelector - , . +
    +function ThenBy<Key>(keySelector: T->Key; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
           comparer . keySelector - , . +
    +function ThenByDescending<Key>(keySelector: T->Key): System.Linq.IOrderedEnumerable<T>; +
           . keySelector - , . +
    +function ThenByDescending<Key>(keySelector: T->Key; comparer: IComparer<Key>): System.Linq.IOrderedEnumerable<T>; +
           comparer . keySelector - , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/ToArray, ToList.html b/PABCNetHelp/LinqDocGen/Files/ToArray, ToList.html new file mode 100644 index 000000000..3a42998f2 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/ToArray, ToList.html @@ -0,0 +1,17 @@ + + + + + +

    ToArray, ToList

    sequence of T.

    + + +
    +function ToArray(): array of T; +
           . +
    +function ToList(): List<T>; +
           List . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/ToDictionary.html b/PABCNetHelp/LinqDocGen/Files/ToDictionary.html new file mode 100644 index 000000000..7b5fb40c3 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/ToDictionary.html @@ -0,0 +1,24 @@ + + + + +

    ToDictionary

    sequence of T.

    + + + + +
    +function ToDictionary<Key>(keySelector: T->Key): Dictionary<Key,T>; +
           Dictionary . +
    +function ToDictionary<Key>(keySelector: T->Key; comparer: IEqualityComparer<Key>): Dictionary<Key,T>; +
           Dictionary . +
    +function ToDictionary<Key,Element>(keySelector: T->Key; elementSelector: T->Element): Dictionary<Key,Element>; +
           Dictionary . +
    +function ToDictionary<Key,Element>(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer<Key>): Dictionary<Key,Element>; +
           Dictionary . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/ToLookup.html b/PABCNetHelp/LinqDocGen/Files/ToLookup.html new file mode 100644 index 000000000..040bce0f4 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/ToLookup.html @@ -0,0 +1,24 @@ + + + + +

    ToLookup

    sequence of T.

    + + + + +
    +function ToLookup<Key>(keySelector: T->Key): System.Linq.ILookup<Key,T>; +
           System.Linq.Lookup . +
    +function ToLookup<Key>(keySelector: T->Key; comparer: IEqualityComparer<Key>): System.Linq.ILookup<Key,T>; +
           System.Linq.Lookup . +
    +function ToLookup<Key,Element>(keySelector: T->Key; elementSelector: T->Element): System.Linq.ILookup<Key,Element>; +
           System.Linq.Lookup . +
    +function ToLookup<Key,Element>(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer<Key>): System.Linq.ILookup<Key,Element>; +
           System.Linq.Lookup . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Union,Intersect,Except.html b/PABCNetHelp/LinqDocGen/Files/Union,Intersect,Except.html new file mode 100644 index 000000000..49fabe519 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Union,Intersect,Except.html @@ -0,0 +1,34 @@ + + + + + + +

    Union,Intersect,Except

    sequence of T.

    + + + + + + +
    +function Union(second: sequence of T): sequence of T; +
           , . +
    +function Union(second: sequence of T; comparer: IEqualityComparer<T>): sequence of T; +
           , , . +
    +function Intersect(second: sequence of T): sequence of T; +
           , . +
    +function Intersect(second: sequence of T; comparer: IEqualityComparer<T>): sequence of T; +
           , , . +
    +function Except(second: sequence of T): sequence of T; +
           , . +
    +function Except(second: sequence of T; comparer: IEqualityComparer<T>): sequence of T; +
           , , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Where.html b/PABCNetHelp/LinqDocGen/Files/Where.html new file mode 100644 index 000000000..a44bb0cd2 --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Where.html @@ -0,0 +1,16 @@ + + + + +

    Where

    sequence of T.

    + + +
    +function Where(predicate: T->boolean): sequence of T; +
           . , . +
    +function Where(predicate: (T,integer)->boolean): sequence of T; +
           . , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Files/Zip.html b/PABCNetHelp/LinqDocGen/Files/Zip.html new file mode 100644 index 000000000..dcd7a144e --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Files/Zip.html @@ -0,0 +1,12 @@ + + + + +

    Zip

    sequence of T.

    + +
    +function Zip<TSecond,Res>(second: sequence of TSecond; resultSelector: (T,TSecond)->Res): sequence of Res; +
           , , . +
    +

    + diff --git a/PABCNetHelp/LinqDocGen/Документация.pas b/PABCNetHelp/LinqDocGen/Документация.pas new file mode 100644 index 000000000..4e3a7c10b --- /dev/null +++ b/PABCNetHelp/LinqDocGen/Документация.pas @@ -0,0 +1,339 @@ +// Print +///- , delim +function IEnumerable.Print(delim: string := ' '): IEnumerable; + +/// , delim , +function IEnumerable.Println(delim: string := ' '): IEnumerable; + +// Where +/// . , . +function IEnumerable.Where(predicate: T->boolean): IEnumerable; + +/// . , . +function IEnumerable.Where(predicate: (T,integer)->boolean): IEnumerable; + +// Select +/// selector. , . +function IEnumerable.Select(selector: T->Res): IEnumerable; + +/// selector, . , . +function IEnumerable.Select(selector: (T,integer)->Res): IEnumerable; + +// SelectMany +/// . . +function IEnumerable.SelectMany(selector: T->IEnumerable): IEnumerable; + +/// . . +function IEnumerable.SelectMany(selector: (T,integer)->IEnumerable): IEnumerable; + +/// , . . . +function IEnumerable.SelectMany(collSelector: (T,integer)->IEnumerable; resultSelector: (T,Coll)->Res): IEnumerable; + +/// , . . +function IEnumerable.SelectMany(collSelector: T->IEnumerable; resultSelector: (T,Coll)->Res): IEnumerable; + +// Take, TakeWhile, Skip, SkipWhile +/// count . +function IEnumerable.Take(count: integer): IEnumerable; + +/// , , +function IEnumerable.TakeWhile(predicate: T->boolean): IEnumerable; + +/// , , ( ) +function IEnumerable.TakeWhile(predicate: (T,integer)->boolean): IEnumerable; + +/// count . +function IEnumerable.Skip(count: integer): IEnumerable; + +/// , , . +function IEnumerable.SkipWhile(predicate: T->boolean): IEnumerable; + +/// , , ( ) +function IEnumerable.SkipWhile(predicate: (T,integer)->boolean): IEnumerable; + +// Sorted +/// +function IEnumerable.Sorted(): IEnumerable; + +// OrderBy, OrderByDescending +/// . keySelector - , . +function IEnumerable.OrderBy(keySelector: T->Key): System.Linq.IOrderedEnumerable; + +/// comparer . keySelector - , . +function IEnumerable.OrderBy(keySelector: T->Key; comparer: IComparer): System.Linq.IOrderedEnumerable; + +/// . keySelector - , . +function IEnumerable.OrderByDescending(keySelector: T->Key): System.Linq.IOrderedEnumerable; + +/// comparer . keySelector - , . +function IEnumerable.OrderByDescending(keySelector: T->Key; comparer: IComparer): System.Linq.IOrderedEnumerable; + +// ThenBy,ThenByDescending +///- . keySelector - , . +function IEnumerable.ThenBy(keySelector: T->Key): System.Linq.IOrderedEnumerable; + +/// comparer . keySelector - , . +function IEnumerable.ThenBy(keySelector: T->Key; comparer: IComparer): System.Linq.IOrderedEnumerable; + +/// . keySelector - , . +function IEnumerable.ThenByDescending(keySelector: T->Key): System.Linq.IOrderedEnumerable; + +/// comparer . keySelector - , . +function IEnumerable.ThenByDescending(keySelector: T->Key; comparer: IComparer): System.Linq.IOrderedEnumerable; + +// Concat +/// , +function IEnumerable.Concat(second: IEnumerable): IEnumerable; + +// Zip +/// , , . +function IEnumerable.Zip(second: IEnumerable; resultSelector: (T,TSecond)->Res): IEnumerable; + +// Distinct +/// . +function IEnumerable.Distinct(): IEnumerable; + +/// , comparer. +function IEnumerable.Distinct(comparer: IEqualityComparer): IEnumerable; + +// Union,Intersect,Except +/// , . +function IEnumerable.Union(second: IEnumerable): IEnumerable; + +/// , , . +function IEnumerable.Union(second: IEnumerable; comparer: IEqualityComparer): IEnumerable; + +/// , . +function IEnumerable.Intersect(second: IEnumerable): IEnumerable; + +/// , , . +function IEnumerable.Intersect(second: IEnumerable; comparer: IEqualityComparer): IEnumerable; + +/// , . +function IEnumerable.Except(second: IEnumerable): IEnumerable; + +/// , , . +function IEnumerable.Except(second: IEnumerable; comparer: IEqualityComparer): IEnumerable; + +// Reverse +///- +function IEnumerable.Reverse(): IEnumerable; + +// SequenceEqual +///- , . +function IEnumerable.SequenceEqual(second: IEnumerable): boolean; + +/// , , . +function IEnumerable.SequenceEqual(second: IEnumerable; comparer: IEqualityComparer): boolean; + +// First, FirstOrDefault +///- . +function IEnumerable.First(): T; + +/// , . +function IEnumerable.First(predicate: T->boolean): T; + +/// , . +function IEnumerable.FirstOrDefault(): T; + +/// , . +function IEnumerable.FirstOrDefault(predicate: T->boolean): T; + +// Last, LastOrDefault +///- . +function IEnumerable.Last(): T; + +/// , . +function IEnumerable.Last(predicate: T->boolean): T; + +/// , . +function IEnumerable.LastOrDefault(): T; + +/// , , , . +function IEnumerable.LastOrDefault(predicate: T->boolean): T; + +// Single, SingleOrDefault +///- , 1. +function IEnumerable.Single(): T; + +/// , , , . +function IEnumerable.Single(predicate: T->boolean): T; + +/// , ; , . +function IEnumerable.SingleOrDefault(): T; + +/// , , , ; , . +function IEnumerable.SingleOrDefault(predicate: T->boolean): T; + +// DefaultIfEmpty +///- , , . +function IEnumerable.DefaultIfEmpty(): IEnumerable; + +/// , , . +function IEnumerable.DefaultIfEmpty(defaultValue: T): IEnumerable; + +// ElementAt, ElementAtOrDefault +///- . +function IEnumerable.ElementAt(index: integer): T; + +/// , . +function IEnumerable.ElementAtOrDefault(index: integer): T; + +// Any, All +///- , - . +function IEnumerable.Any(): boolean; + +/// , - . +function IEnumerable.Any(predicate: T->boolean): boolean; + +/// , . +function IEnumerable.All(predicate: T->boolean): boolean; + +// Count +/// . +function IEnumerable.Count(): integer; + +///- , , . +function IEnumerable.Count(predicate: T->boolean): integer; + +/// Int64, . +function IEnumerable.LongCount(): int64; + +/// Int64, , . +function IEnumerable.LongCount(predicate: T->boolean): int64; + +// Contains +///- , , . +function IEnumerable.Contains(value: T): boolean; + +/// , , . +function IEnumerable.Contains(value: T; comparer: IEqualityComparer): boolean; + +// Aggregate +///- . . +function IEnumerable.Aggregate(func: (T,T)->T): T; + +/// . . . +function IEnumerable.Aggregate(seed: T; func: (Accum,T)->Accum): T; + +/// . , . . +function IEnumerable.Aggregate(seed: T; func: (Accum,T)->Accum; resultSelector: Accum->Res): T; + +// Sum, Average +/// +function IEnumerable<>.Sum(): ; + +/// , . +function IEnumerable.Sum(selector: T->): ; + +/// +function IEnumerable<>.Average(): real; + +/// , . +function IEnumerable.Average(selector: T->): real; + +// Min, Max +/// +function IEnumerable<>.Min(): ; + +/// . +function IEnumerable.Min(selector: T->): ; + +/// +function IEnumerable<>.Max(): ; + +/// . +function IEnumerable.Max(selector: T->): ; + +// Join +/// . resultSelector . +function IEnumerable.Join(inner: IEnumerable; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,TInner)->Res): IEnumerable; + +/// . resultSelector . comparer +function IEnumerable.Join(inner: IEnumerable; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,TInner)->Res; comparer: System.Collections.Generic.IEqualityComparer): IEnumerable; + +// GroupJoin +/// . resultSelector . +function IEnumerable.GroupJoin(inner: IEnumerable; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,IEnumerable)->Res): IEnumerable; + +/// . . resultSelector . +function IEnumerable.GroupJoin(inner: IEnumerable; outerKeySelector: T->Key; innerKeySelector: TInner->TKey; resultSelector: (T,IEnumerable)->Res; comparer: IEqualityComparer): IEnumerable; + +// GroupBy +/// ; . +function IEnumerable.GroupBy(keySelector: T->Key): IEnumerable>; + +/// , ; . +function IEnumerable.GroupBy(keySelector: T->Key; comparer: System.Collections.Generic.IEqualityComparer): IEnumerable>; + +/// . ; . +function IEnumerable.GroupBy(keySelector: T->Key; elementSelector: T->Element): IEnumerable>; + +/// . , . +function IEnumerable.GroupBy(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer): IEnumerable>; + +/// . +function IEnumerable.GroupBy(keySelector: T->Key; resultSelector: (Key,IEnumerable)->Res): IEnumerable; + +/// . . +function IEnumerable.GroupBy(keySelector: T->Key; elementSelector: T->Element; resultSelector: (Key,IEnumerable)->Res): IEnumerable; + +/// . . +function IEnumerable.GroupBy(keySelector: T->Key; resultSelector: (Key,IEnumerable)->Res; comparer: IEqualityComparer): IEnumerable; + +/// . , . +function IEnumerable.GroupBy(keySelector: T->Key; elementSelector: System.T->Element; resultSelector: (Key,IEnumerable)->Res; comparer: IEqualityComparer): IEnumerable; + +// AsEnumerable +/// , IEnumerable. +function IEnumerable.AsEnumerable(): IEnumerable; + +// ToArray, ToList +/// . +function IEnumerable.ToArray(): array of T; + +/// List . +function IEnumerable.ToList(): List; + +// ToDictionary +/// Dictionary . +function IEnumerable.ToDictionary(keySelector: T->Key): Dictionary; + +/// Dictionary . +function IEnumerable.ToDictionary(keySelector: T->Key; comparer: IEqualityComparer): Dictionary; + +/// Dictionary . +function IEnumerable.ToDictionary(keySelector: T->Key; elementSelector: T->Element): Dictionary; + +/// Dictionary . +function IEnumerable.ToDictionary(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer): Dictionary; + +// ToLookup +/// System.Linq.Lookup . +function IEnumerable.ToLookup(keySelector: T->Key): System.Linq.ILookup; + +/// System.Linq.Lookup . +function IEnumerable.ToLookup(keySelector: T->Key; comparer: IEqualityComparer): System.Linq.ILookup; + +/// System.Linq.Lookup . +function IEnumerable.ToLookup(keySelector: T->Key; elementSelector: T->Element): System.Linq.ILookup; + +/// System.Linq.Lookup . +function IEnumerable.ToLookup(keySelector: T->Key; elementSelector: T->Element; comparer: IEqualityComparer): System.Linq.ILookup; + +// OfType +/// System.Collections.IEnumerable . . . +function IEnumerable.OfType(): IEnumerable; + +// Cast +/// System.Collections.IEnumerable . +function IEnumerable.Cast(): IEnumerable; + +// JoinIntoString +/// , , delim +function IEnumerable.JoinIntoString(delim: string := ' '): string; + +// ForEach +/// +procedure IEnumerable.ForEach(action: T->()); + diff --git a/PABCNetHelp/PABCSystemDocGen/!AllSteps.exe b/PABCNetHelp/PABCSystemDocGen/!AllSteps.exe new file mode 100644 index 000000000..fb3a87ec8 Binary files /dev/null and b/PABCNetHelp/PABCSystemDocGen/!AllSteps.exe differ diff --git a/PABCNetHelp/PABCSystemDocGen/!AllSteps.pas b/PABCNetHelp/PABCSystemDocGen/!AllSteps.pas new file mode 100644 index 000000000..099b46b22 --- /dev/null +++ b/PABCNetHelp/PABCSystemDocGen/!AllSteps.pas @@ -0,0 +1,9 @@ +uses GenDocUnit; + +begin + Step1; + Step2; + Step3; + Step4; + FinalStep; +end. \ No newline at end of file diff --git a/PABCNetHelp/PABCSystemDocGen/GenDocUnit.pas b/PABCNetHelp/PABCSystemDocGen/GenDocUnit.pas new file mode 100644 index 000000000..5b39898cb --- /dev/null +++ b/PABCNetHelp/PABCSystemDocGen/GenDocUnit.pas @@ -0,0 +1,256 @@ +unit GenDocUnit; + +procedure Step1; +const fname = 'D:\PABC_Git\bin\Lib\PABCSystem.pas'; +const fname1 = 'D:\PABC_Git\bin\Lib\PABCExtensions.pas'; +begin + var q := ReadLines(fname).Where(s->s.Trim.Length>0); + + var l := new List; + var skip := true; + foreach var s in ReadLines(fname).ToArray + ReadLines(fname1).ToArray do + begin + if s.StartsWith('//{{{doc:') then + begin + skip := false; + continue; + end; + if s.StartsWith('//{{{--doc:') then + begin + skip := true; + end; + if skip then + continue; + l.Add(s.Replace('&','')); + end; + + WriteLines('PABC.pas',l); +end; + +procedure Step2; +const fname = 'PABC.pas'; +begin + var l := new List; + var skipNext := False; + var skipUntilEnd := False; + foreach var s in ReadLines(fname) do + begin + if s.Trim.StartsWith('/// !! ')then + continue; + if s.Trim.StartsWith('// ')then + continue; + if s.Trim.StartsWith('//---')then + continue; + if s.Trim.StartsWith('const')then + continue; + if s.Trim.StartsWith('type')then + continue; + if s.Trim.Length=0 then + continue; + + if s.StartsWith('///--') or s.StartsWith('///!!-') then + begin + skipNext := True; + continue; + end; + if skipNext then + begin + skipNext := false; + continue; + end; + if s.StartsWith('begin') then + begin + skipUntilEnd := True; + continue; + end; + if s.StartsWith('end') then + begin + skipUntilEnd := False; + continue; + end; + if skipUntilEnd then + begin + continue; + end; + l.Add(s.Trim); + end; + + WriteLines('PABC1.pas',l); +end; + +procedure Step3; +const fname = 'PABC1.pas'; +begin + var l := new List; + var Prev: string := ''; + foreach var s in ReadLines(fname) do + begin + if Prev.StartsWith('/// ') and s.StartsWith('///') and not s.StartsWith('///-') then + begin + l[l.Count-1] := l[l.Count-1] + '' + s.Remove(0,3).Trim; + end + else l.Add(s); + Prev := s; + end; + + WriteLines('PABC2.pas',l); +end; + +procedure Step4; +const fname = 'PABC2.pas'; +begin + var l := new List; + var p1 := ''; + var p2 := ''; + foreach var s in ReadLines(fname) do + begin + if s.StartsWith('///-')then + begin + p1 := s; + continue; + end; + if (p1<>'') and (p2='') then + begin + p2 := s; + continue; + end; + if (p1<>'') and (p2<>'') then + begin + l.Add(p2); + l.Add(p1.Remove(0,4).Trim); + p1 := ''; + p2 := ''; + continue; + end; + {var s1 := s; + var ind := s.IndexOf(' = '); + if ind>=0 then + s1 := s.Substring(0,ind);} + l.Add(s); + end; + + WriteLines('PABCdoc.pas',l); +end; + +function Around(Self: string; s: string): string; extensionmethod; +begin + var opentag := '<'+s+'>'; + var closetag := ''; + Result := opentag + Self + closetag; +end; + +function DeleteFirst(Self: string; s: string): string; extensionmethod; +begin + if Self.StartsWith(s) then + Result := Self.Remove(0,s.Length) + else Result := Self +end; + +var toc := Seq(''); +var hrefs := Seq(''); + +procedure GenerateHTMLFile(HelpFileName,Title: string; lst: List); +begin + var keywords := new SortedSet; + var s := ''; + var table := ''; + var lst1 := lst.Select(s->s.Replace('<','<').Replace('>','>')); + var funcs := lst1.Slice(1,2).ToList; + var defs := lst1.Slice(0,2).ToList; + var names := funcs.Select(s->begin Result := ''; var ss := s.Split(' ','<','(','&',':'); if (ss[0]='procedure') or (ss[0]='function') then Result := ss[1] else Result := ss[0]; end).ToList; + var ttt := funcs.ZipTuple(defs,names).OrderBy(t->t[2]); + + funcs := ttt.Select(t->t[0]).ToList; + defs := ttt.Select(t->t[1]).ToList; + + if funcs.Count<>defs.Count then + begin + Println(HelpFileName,Title); + writeln('Разное количество'); + halt; + end; + + for var i:=0 to funcs.Count-1 do + begin + var dd := defs[i].Remove(0,3).Trim; + var td := funcs[i].Around('code') + .Replace('function','function') + .Replace('procedure','procedure') + .Replace('sequence ','sequence ') + .Replace('set ','set ') + .Replace('array ','array ') + .Replace('file ',' file ') + .Replace('of ',' of ') + .Replace('var ','var ') + .Replace('params ','params ') + .Replace('const ','const ') + .Replace('extensionmethod','extensionmethod') + + NewLine + '
    ' + ' '*8 + dd; + var k := funcs[i].DeleteFirst('function ').DeleteFirst('procedure '); + k := k.MatchValue('\w+'); + keywords += k; + td := td.Around('td').Around('tr')+NewLine; + table += td; + end; + var keys := keywords.Select(s->'').JoinIntoString(NewLine); + keys := '' + + NewLine +keys + + ''+ NewLine ; + keys += ''+NewLine; + + table := NewLine+'' + table + '
    '; + s := keys.Around('HEAD') + + (Title.Around('H1') + table).Around('body'); + //Println(HelpFileName); + WriteAllText('..\LangGuide\PABCSystemUnit\Files\'+HelpFileName+'.html',s.Around('HTML')); + + var s1 := ''; + var s2 := ''; + toc := toc + '
  • ' + s1; + toc := toc + s2; + toc := toc + ''; + + hrefs := hrefs + ('
  • '+Title+'
  • '); +end; + +procedure FinalStep; +begin + var lines := ReadLines('PABCdoc.pas').ToArray; + var lst := new List; + var HelpFileName := ''; + var Title := ''; + var num := 0; + for var i:=0 to lines.Count-1 do + begin + var s := lines[i]; + if s.StartsWith('//>>') then + begin + num += 1; + //if num=2 then break; + if num>1 then + GenerateHTMLFile(HelpFileName,Title,lst); + + lst.Clear; + HelpFileName := s.Remove(0,4).Trim; + var ss := HelpFileName.Split('#'); + try + HelpFileName := ss[1].Trim; + except + Print(ss[0]) + end; + Title := ss[0].Trim; + continue; + //Println(Title,HelpFileName); + end; + lst.Add(s); + end; + GenerateHTMLFile(HelpFileName,Title,lst); + WriteLines('toc.html',toc); + WriteLines('hrefs.html',hrefs); + + Println(num); +end; + + +begin +end. \ No newline at end of file diff --git a/PABCNetHelp/PABCSystemDocGen/PABC.pas b/PABCNetHelp/PABCSystemDocGen/PABC.pas new file mode 100644 index 000000000..0ace5dfc5 --- /dev/null +++ b/PABCNetHelp/PABCSystemDocGen/PABC.pas @@ -0,0 +1,3892 @@ + +// ----------------------------------------------------- +//>> # Standard constants +// ----------------------------------------------------- +const + /// shortint + MaxShortInt = shortint.MaxValue; + /// byte + MaxByte = byte.MaxValue; + /// smallint + MaxSmallInt = smallint.MaxValue; + /// word + MaxWord = word.MaxValue; + /// longword + MaxLongWord = longword.MaxValue; + /// int64 + MaxInt64 = int64.MaxValue; + /// uint64 + MaxUInt64 = uint64.MaxValue; + /// double + MaxDouble = real.MaxValue; + /// double + MinDouble = real.Epsilon; + /// real + MaxReal = real.MaxValue; + /// real + MinReal = real.Epsilon; + /// single + MaxSingle = single.MaxValue; + /// single + MinSingle = single.Epsilon; + /// integer + MaxInt = integer.MaxValue; + /// Pi + /// !! Pi constant + Pi = 3.141592653589793; + /// E + /// !! E constant + E = 2.718281828459045; + /// + /// !! The newline string defined for this environment. + NewLine = System.Environment.NewLine; +// ----------------------------------------------------- +//>> # Standard types +// ----------------------------------------------------- +type + /// + Object = System.Object; + + /// + Exception = System.Exception; + + /// double = real + double = System.Double; + + /// longint = integer + longint = System.Int32; + + /// cardinal = longword + cardinal = System.UInt32; + + /// 128- + /// !! Represents a decimal number + decimal = System.Decimal; + + /// + BigInteger = System.Numerics.BigInteger; + + /// + DateTime = System.DateTime; + + /// + Complex = System.Numerics.Complex; + + /// + Tuple = System.Tuple; + + /// + List = System.Collections.Generic.List; + + /// IComparer + Comparer = System.Collections.Generic.Comparer; + + /// IComparer + IComparable = System.IComparable; + + /// , - + HashSet = System.Collections.Generic.HashSet; + + /// , + SortedSet = System.Collections.Generic.SortedSet; + + /// ( -), - + Dictionary = System.Collections.Generic.Dictionary; + + /// , + SortedDictionary = System.Collections.Generic.SortedDictionary; + + /// ( -), + SortedList = System.Collections.Generic.SortedList; + + /// - + KeyValuePair = System.Collections.Generic.KeyValuePair; + + /// + LinkedList = System.Collections.Generic.LinkedList; + + /// + LinkedListNode = System.Collections.Generic.LinkedListNode; + + /// - , " - " + Queue = System.Collections.Generic.Queue; + + /// - , " - " + Stack = System.Collections.Generic.Stack; + + /// + ICollection = System.Collections.Generic.ICollection; + + /// + IComparer = System.Collections.Generic.IComparer; + + /// - + IDictionary = System.Collections.Generic.IDictionary; + + /// , + IEnumerable = System.Collections.Generic.IEnumerable; + + /// + IEnumerator = System.Collections.Generic.IEnumerator; + + /// + IEqualityComparer = System.Collections.Generic.IEqualityComparer; + + /// + IList = System.Collections.Generic.IList; + + /// + ISet = System.Collections.Generic.ISet; + + /// + StringBuilder = System.Text.StringBuilder; + + /// + Encoding = System.Text.Encoding; + + /// + Action0 = System.Action; + + /// + Action = System.Action; + + /// + Action2 = System.Action; + + /// + Action3 = System.Action; + + /// + Func0 = System.Func; + + /// + Func = System.Func; + + /// + Func2 = System.Func; + + /// + Func3 = System.Func; + + /// , + IntFunc = Func; + + /// , + RealFunc = Func; + + /// , + StringFunc = Func; + + /// , boolean + Predicate = System.Predicate; + + /// , boolean + Predicate2 = function(x1: T1; x2: T2): boolean; + + /// , boolean + Predicate3 = function(x1: T1; x2: T2; x3: T3): boolean; + + /// + Regex = System.Text.RegularExpressions.Regex; + + /// + Match = System.Text.RegularExpressions.Match; + + /// , Regex.Replace + MatchEvaluator = System.Text.RegularExpressions.MatchEvaluator; + + /// + MatchCollection = System.Text.RegularExpressions.MatchCollection; + + /// + RegexOptions = System.Text.RegularExpressions.RegexOptions; + + /// Regex.Match + RegexGroup = System.Text.RegularExpressions.Group; + + /// Regex.Match + RegexGroupCollection = System.Text.RegularExpressions.GroupCollection; + + /// 255 + ShortString = string[255]; + + +// ----------------------------------------------------- +//>> # Read subroutines +// ----------------------------------------------------- +///- procedure Read(a,b,...); +/// a,b,... +procedure Read; +///-- +procedure Read(var x: integer); +///-- +procedure Read(var x: real); +///-- +procedure Read(var x: char); +///-- +procedure Read(var x: string); +///-- +procedure Read(var x: byte); +///-- +procedure Read(var x: shortint); +///-- +procedure Read(var x: smallint); +///-- +procedure Read(var x: word); +///-- +procedure Read(var x: longword); +///-- +procedure Read(var x: int64); +///-- +procedure Read(var x: uint64); +///-- +procedure Read(var x: single); +///-- +procedure Read(var x: boolean); +///- procedure Readln(a,b,...); +/// a,b,... +procedure Readln; + +/// x . False +function TryRead(var x: integer): boolean; +///-- +function TryRead(var x: real): boolean; +///-- +function TryRead(var x: byte): boolean; +///-- +function TryRead(var x: shortint): boolean; +///-- +function TryRead(var x: smallint): boolean; +///-- +function TryRead(var x: word): boolean; +///-- +function TryRead(var x: longword): boolean; +///-- +function TryRead(var x: int64): boolean; +///-- +function TryRead(var x: uint64): boolean; +///-- +function TryRead(var x: single): boolean; + +/// integer, +function ReadInteger: integer; +/// real, +function ReadReal: real; +/// char, +function ReadChar: char; +/// string, +function ReadString: string; +/// boolean, +function ReadBoolean: boolean; + +/// integer, , +function ReadlnInteger: integer; +/// real, , +function ReadlnReal: real; +/// char, , +function ReadlnChar: char; +/// string, , +function ReadlnString: string; +/// boolean, , +function ReadlnBoolean: boolean; + +/// integer, +function ReadInteger2: (integer, integer); +/// real, +function ReadReal2: (real, real); +/// char, +function ReadChar2: (char, char); +/// string, +function ReadString2: (string, string); +/// integer, , +function ReadlnInteger2: (integer, integer); +/// real, , +function ReadlnReal2: (real, real); +/// char, , +function ReadlnChar2: (char, char); +/// string, , +function ReadlnString2: (string, string); + +/// integer, +function ReadInteger3: (integer, integer, integer); +/// real, +function ReadReal3: (real, real, real); +/// char, +function ReadChar3: (char, char, char); +/// string, +function ReadString3: (string, string, string); +/// integer, , +function ReadlnInteger3: (integer, integer, integer); +/// real, , +function ReadlnReal3: (real, real, real); +/// char, , +function ReadlnChar3: (char, char, char); +/// string, , +function ReadlnString3: (string, string, string); + +/// integer, +function ReadInteger2(prompt: string): (integer, integer); +/// real, +function ReadReal2(prompt: string): (real, real); +/// char, +function ReadChar2(prompt: string): (char, char); +/// string, +function ReadString2(prompt: string): (string, string); +/// integer, , +function ReadlnInteger2(prompt: string): (integer, integer); +/// real, , +function ReadlnReal2(prompt: string): (real, real); +/// char, , +function ReadlnChar2(prompt: string): (char, char); +/// string, , +function ReadlnString2(prompt: string): (string, string); + +/// integer, +function ReadInteger3(prompt: string): (integer, integer, integer); +/// real, +function ReadReal3(prompt: string): (real, real, real); +/// char, +function ReadChar3(prompt: string): (char, char, char); +/// string, +function ReadString3(prompt: string): (string, string, string); +/// integer, , +function ReadlnInteger3(prompt: string): (integer, integer, integer); +/// real, , +function ReadlnReal3(prompt: string): (real, real, real); +/// char, , +function ReadlnChar3(prompt: string): (char, char, char); +/// string, , +function ReadlnString3(prompt: string): (string, string, string); + + +/// integer, +function ReadInteger(prompt: string): integer; +/// real, +function ReadReal(prompt: string): real; +/// char, +function ReadChar(prompt: string): char; +/// string, +function ReadString(prompt: string): string; +/// boolean, +function ReadBoolean(prompt: string): boolean; + +/// integer, , +/// +function ReadlnInteger(prompt: string): integer; +/// real, , +/// +function ReadlnReal(prompt: string): real; +/// char, , +/// +function ReadlnChar(prompt: string): char; +/// string, , +/// +function ReadlnString(prompt: string): string; +/// boolean, , +/// +function ReadlnBoolean(prompt: string): boolean; + + +///-- +procedure ReadShortString(var s: string; n: integer); +///-- +procedure ReadShortStringFromFile(f: Text; var s: string; n: integer); + +///- procedure Read(f: ; a,b,...); +/// a,b,... f +procedure Read(f: Text); +///-- +procedure Read(f: Text; var x: integer); +///-- +procedure Read(f: Text; var x: real); +///-- +procedure Read(f: Text; var x: char); +///-- +procedure Read(f: Text; var x: string); +///-- +procedure Read(f: Text; var x: byte); +///-- +procedure Read(f: Text; var x: shortint); +///-- +procedure Read(f: Text; var x: smallint); +///-- +procedure Read(f: Text; var x: word); +///-- +procedure Read(f: Text; var x: longword); +///-- +procedure Read(f: Text; var x: int64); +///-- +procedure Read(f: Text; var x: uint64); +///-- +procedure Read(f: Text; var x: single); +///-- +procedure Read(f: Text; var x: boolean); + +///- procedure Readln(f: Text; a,b,...); +/// a,b,... f +procedure Readln(f: Text); +///-- +procedure Readln(f: Text; var x: string); + +/// integer, f +function ReadInteger(f: Text): integer; +/// real, f +function ReadReal(f: Text): real; +/// char, f +function ReadChar(f: Text): char; +/// string, f +function ReadString(f: Text): string; +/// boolean, f +function ReadBoolean(f: Text): boolean; + +/// integer, f, +/// +function ReadlnInteger(f: Text): integer; +/// real, f, +/// +function ReadlnReal(f: Text): real; +/// char, f, +/// +function ReadlnChar(f: Text): char; +/// string, f, +/// +function ReadlnString(f: Text): string; +/// boolean, f, +/// +function ReadlnBoolean(f: Text): boolean; + +// ----------------------------------------------------- +//>> # Write subroutines +// ----------------------------------------------------- +///- procedure Write(a,b,...); +/// a,b,... +procedure Write; +///-- +procedure Write(obj: object); +///-- +procedure Write(obj1, obj2: object); +///-- +procedure Write(params args: array of object); + +///- procedure Writeln(a,b,...); +/// a,b,... +///!!- Writeln(a,b,...) +/// Writes a,b,... to standart output stream and appends newline +procedure Writeln; +///-- +procedure Writeln(obj: object); +///-- +//procedure writeln(ptr: pointer); +///-- +procedure Writeln(obj1, obj2: object); +///-- +procedure Writeln(params args: array of object); + +///- procedure Write(f: ; a,b,...); +/// a,b,... f +procedure Write(f: Text); +///-- +procedure Write(f: Text; val: object); +///-- +procedure Write(f: Text; params args: array of object); + +///- procedure Writeln(f: Text; a,b,...); +/// a,b,... f +procedure Writeln(f: Text); +///-- +procedure Writeln(f: Text; val: object); +///-- +procedure Writeln(f: Text; params args: array of object); + +/// args formatstr +procedure WriteFormat(formatstr: string; params args: array of object); +/// args formatstr +procedure WritelnFormat(formatstr: string; params args: array of object); +/// args f formatstr +procedure WriteFormat(f: Text; formatstr: string; params args: array of object); +/// args f formatstr +/// +procedure WritelnFormat(f: Text; formatstr: string; params args: array of object); + +///- procedure Print(a,b,...); +/// a,b,... , +procedure Print(s: string); +///-- +procedure Print(params args: array of object); +///- procedure Print(f: Text; a,b,...); +/// a,b,... f, +procedure Print(f: Text; params args: array of object); +///- procedure Println(a,b,...); +/// a,b,... , +procedure Println(params args: array of object); +///- procedure Println(f: Text; a,b,...); +/// a,b,... f, +procedure Println(f: Text; params args: array of object); + +// ----------------------------------------------------- +//>> # Common subroutines for files +// ----------------------------------------------------- +///- procedure Assign(f: ; name: string); +/// +procedure Assign(f: AbstractBinaryFile; name: string); +///- procedure AssignFile(f: ; name: string); +/// +procedure AssignFile(f: AbstractBinaryFile; name: string); +///- procedure Close(f: ); +/// +procedure Close(f: AbstractBinaryFile); +///- procedure CloseFile(f: ); +/// +procedure CloseFile(f: AbstractBinaryFile); +///- function Eof(f: ): boolean; +/// True, +function Eof(f: AbstractBinaryFile): boolean; +///- procedure Erase(f: ); +/// , +procedure Erase(f: AbstractBinaryFile); +///- procedure Rename(f: ; newname: string); +/// , , newname. +procedure Rename(f: AbstractBinaryFile; newname: string); + +// ----------------------------------------------------- +//>> # Subroutines for text files +// ----------------------------------------------------- +///-- +procedure Assign(f: Text; name: string); +///-- +procedure AssignFile(f: Text; name: string); +///-- +procedure Close(f: Text); +///-- +procedure CloseFile(f: Text); +/// Windows +procedure Reset(f: Text); +/// +procedure Reset(f: Text; en: Encoding); +/// f name Windows +procedure Reset(f: Text; name: string); +/// f name +procedure Reset(f: Text; name: string; en: Encoding); +/// Windows. +/// - , - +procedure Rewrite(f: Text); +/// . +/// - , - +procedure Rewrite(f: Text; en: Encoding); +/// name f Windows. +/// - , - +procedure Rewrite(f: Text; name: string); +/// f name f . +/// - , - +procedure Rewrite(f: Text; name: string; en: Encoding); +/// Windows +procedure Append(f: Text); +/// +procedure Append(f: Text; en: Encoding); +/// f name Windows +procedure Append(f: Text; name: string); +/// f name +procedure Append(f: Text; name: string; en: Encoding); +/// fname, Windows +function OpenRead(fname: string): Text; +/// fname, +function OpenRead(fname: string; en: Encoding): Text; +/// fname, Windows +function OpenWrite(fname: string): Text; +/// fname, +function OpenWrite(fname: string; en: Encoding): Text; +/// fname, Windows +function OpenAppend(fname: string): Text; +/// fname, +function OpenAppend(fname: string; en: Encoding): Text; + +///-- +function Eof(f: Text): boolean; +/// True, +function Eoln(f: Text): boolean; +/// , True, +function SeekEof(f: Text): boolean; +/// , True, +function SeekEoln(f: Text): boolean; +/// +procedure Flush(f: Text); +///-- +procedure Erase(f: Text); +///-- +procedure Rename(f: Text; newname: string); +///-- +procedure TextFileInit(var f: Text); + +/// , Windows . +function ReadLines(path: string): sequence of string; +/// , . +function ReadLines(path: string; en: Encoding): sequence of string; +/// , Windows , +function ReadAllLines(path: string): array of string; +/// , , +function ReadAllLines(path: string; en: Encoding): array of string; +/// , Windows , +function ReadAllText(path: string): string; +/// , , +function ReadAllText(path: string; en: Encoding): string; +/// , Windows, +procedure WriteLines(path: string; ss: sequence of string); +/// , , +procedure WriteLines(path: string; ss: sequence of string; en: Encoding); +/// , Windows, +procedure WriteAllLines(path: string; ss: array of string); +/// , , +procedure WriteAllLines(path: string; ss: array of string; en: Encoding); +/// , Windows, +procedure WriteAllText(path: string; s: string); +/// , , +procedure WriteAllText(path: string; s: string; en: Encoding); + +// ----------------------------------------------------- +//>> # Subroutines for binary files +// ----------------------------------------------------- +///- procedure Reset(f: ); +/// . +/// - file of T, file +procedure Reset(f: AbstractBinaryFile); +///- procedure Reset(f: ; name: string); +/// f name . +/// - file of T, file +procedure Reset(f: AbstractBinaryFile; name: string); +///- procedure Rewrite(f: ); +/// , . , . +/// - file of T, file +procedure Rewrite(f: AbstractBinaryFile); +///- procedure Rewrite(f: ; name: string); +/// f name , . +/// - file of T, file +procedure Rewrite(f: AbstractBinaryFile; name: string); +///- procedure Truncate(f: ); +/// , . +/// - file of T, file +procedure Truncate(f: AbstractBinaryFile); + +///-- +procedure Write(f: AbstractBinaryFile; params vals: array of object); +///-- +procedure Writeln(f: AbstractBinaryFile); +///-- +procedure Writeln(f: AbstractBinaryFile; val: object); +///-- +procedure Writeln(f: AbstractBinaryFile; params vals: array of object); + +///- function FilePos(f: ): int64; +/// +function FilePos(f: TypedFile): int64; +///- function FileSize(f: ): int64; +/// +function FileSize(f: TypedFile): int64; +///- procedure Seek(f: ; n: int64); +/// +procedure Seek(f: TypedFile; n: int64); +///-- +procedure TypedFileInit(var f: TypedFile; ElementType: System.Type); +///-- +procedure TypedFileInit(var f: TypedFile; ElementType: System.Type; off: integer; params offs: array of integer); +///-- +procedure TypedFileInitWithShortString(var f: TypedFile; ElementType: System.Type; off: integer; params offs: array of integer); +///-- +function TypedFileRead(f: TypedFile): object; + +///-- +function FilePos(f: BinaryFile): int64; +///-- +function FileSize(f: BinaryFile): int64; +///-- +procedure Seek(f: BinaryFile; n: int64); +///-- +procedure BinaryFileInit(var f: BinaryFile); +///-- +function BinaryFileRead(var f: BinaryFile; ElementType: System.Type): object; + +// ----------------------------------------------------- +//>> C # System subroutines +// ----------------------------------------------------- +/// PascalABC.NET +function PascalABCVersion: string; +/// +function ParamCount: integer; +/// i- +function ParamStr(i: integer): string; +/// +function GetDir: string; +/// +procedure ChDir(s: string); +/// +procedure MkDir(s: string); +/// +procedure RmDir(s: string); + +/// . True, +function CreateDir(s: string): boolean; +/// . , False +function DeleteFile(s: string): boolean; +/// +function GetCurrentDir: string; +/// . True, +function RemoveDir(s: string): boolean; +/// name, newname. True, +function RenameFile(name, newname: string): boolean; +/// . True, +function SetCurrentDir(s: string): boolean; + +/// name newext +function ChangeFileNameExtension(name, newext: string): string; +/// True, name +function FileExists(name: string): boolean; + +/// +procedure Assert(cond: boolean; sourceFile: string := ''; line: integer := 0); +/// +procedure Assert(cond: boolean; message: string; sourceFile: string := ''; line: integer := 0); + +/// diskname +function DiskFree(diskname: string): int64; +/// diskname +function DiskSize(diskname: string): int64; +/// disk. disk=0 - , disk=1 - A: , disk=2 - B: .. +function DiskFree(disk: integer): int64; +/// disk. disk=0 - , disk=1 - A: , disk=2 - B: .. +function DiskSize(disk: integer): int64; +/// +function Milliseconds: integer; +/// Milliseconds MillisecondsDelta +function MillisecondsDelta: integer; + +/// +procedure Halt; +/// , exitCode +procedure Halt(exitCode: integer); + +/// ms +procedure Sleep(ms: integer); +/// .exe- +function GetEXEFileName: string; +/// +function PointerToString(p: pointer): string; + +/// filename +procedure Exec(filename: string); +/// filename args +procedure Exec(filename: string; args: string); +/// filename +procedure Execute(filename: string); +/// filename args +procedure Execute(filename: string; args: string); + +/// , +function EnumerateFiles(path: string; searchPattern: string := '*.*'): sequence of string; +/// , , +function EnumerateAllFiles(path: string; searchPattern: string := '*.*'): sequence of string; +/// +function EnumerateDirectories(path: string): sequence of string; +/// , +function EnumerateAllDirectories(path: string): sequence of string; + +///-procedure New(var p: ^T); +/// sizeof(T) p . T +//procedure New(var p: ^T); + +///-procedure Dispose(var p: ^T); +/// , p +//procedure Dispose(var p: ^T); + + +// ----------------------------------------------------- +//>> # Functions for file names +// ----------------------------------------------------- +/// fname +function ExtractFileName(fname: string): string; +/// fname +function ExtractFileExt(fname: string): string; +/// fname +function ExtractFilePath(fname: string): string; +/// fname +function ExtractFileDir(fname: string): string; +/// fname +function ExtractFileDrive(fname: string): string; +/// fname +function ExpandFileName(fname: string): string; + +// ----------------------------------------------------- +//>> # Math subroutines +// ----------------------------------------------------- +///-function Sign(x: ): ; +/// x +function Sign(x: shortint): integer; +///-- +function Sign(x: smallint): integer; +///-- +function Sign(x: integer): integer; +///-- +function Sign(x: BigInteger): integer; +///-- +function Sign(x: longword): integer; +///-- +function Sign(x: int64): integer; +///-- +function Sign(x: uint64): integer; +///-- +function Sign(x: real): integer; +///-function Abs(x: ): ; +/// x +function Abs(x: integer): integer; +///-- +function Abs(x: shortint): shortint; +///-- +function Abs(x: smallint): smallint; +///-- +function Abs(x: BigInteger): BigInteger; +///-- +function Abs(x: longword): longword; +///-- +function Abs(x: int64): int64; +///-- +function Abs(x: uint64): uint64; +///-- +function Abs(x: real): real; +///-- +function Abs(x: single): single; +/// x +function Sin(x: real): real; +/// x +function Sinh(x: real): real; +/// x +/// !! Returns the cosine of number x +function Cos(x: real): real; +/// x +function Cosh(x: real): real; +/// x +function Tan(x: real): real; +/// x +function Tanh(x: real): real; +/// x +function ArcSin(x: real): real; +/// x +function ArcCos(x: real): real; +/// x +function ArcTan(x: real): real; +/// x +function Exp(x: real): real; +/// x +function Ln(x: real): real; +/// x +function Log(x: real): real; +/// x 2 +function Log2(x: real): real; +/// x +function Log10(x: real): real; +/// x base +function LogN(base, x: real): real; +/// x +function Sqrt(x: real): real; +///-function Sqr(x: ): ; +/// x +function Sqr(x: integer): int64; +///-- +function Sqr(x: shortint): integer; +///-- +function Sqr(x: smallint): integer; +///-- +function Sqr(x: BigInteger): BigInteger; +///-- +function Sqr(x: longword): uint64; +///-- +function Sqr(x: int64): int64; +///-- +function Sqr(x: uint64): uint64; +///-- +function Sqr(x: real): real; +/// x y +function Power(x, y: real): real; +/// x n +function Power(x: real; n: integer): real; +/// x y +function Power(x: BigInteger; y: integer): BigInteger; +/// x, . , +/// ( ): Round(2.5)=2, Round(3.5)=4 +function Round(x: real): integer; +/// x, digits +function Round(x: real; digits: integer): real; +/// x, +function RoundBigInteger(x: real): BigInteger; +/// x +function Trunc(x: real): integer; +/// x +function TruncBigInteger(x: real): BigInteger; +/// x +function Int(x: real): real; +/// x +function Frac(x: real): real; +/// <= x +function Floor(x: real): integer; +/// >= x +function Ceil(x: real): integer; +/// +function RadToDeg(x: real): real; +/// +function DegToRad(x: real): real; + +/// +procedure Randomize; +/// , seed. seed +procedure Randomize(seed: integer); +/// 0 maxValue-1 +function Random(maxValue: integer): integer; +/// a b +function Random(a, b: integer): integer; +/// [0..1) +function Random: real; +/// 0 maxValue-1 +function Random2(maxValue: integer): (integer, integer); +/// a b +function Random2(a, b: integer): (integer, integer); +/// [0..1) +function Random2: (real, real); +/// 0 maxValue-1 +function Random3(maxValue: integer): (integer, integer, integer); +/// a b +function Random3(a, b: integer): (integer, integer, integer); +/// [0..1) +function Random3: (real, real, real); + +///-function Max(a: , b: ): ; +/// a,b +function Max(a, b: byte): byte; +///-- +function Max(a, b: shortint): shortint; +///-- +function Max(a, b: smallint): smallint; +///-- +function Max(a, b: word): word; +///-- +function Max(a, b: integer): integer; +///-- +function Max(a, b: BigInteger): BigInteger; +///-- +function Max(a, b: longword): longword; +///-- +function Max(a, b: int64): int64; +///-- +function Max(a, b: uint64): uint64; +///-- +function Max(a, b: real): real; +///-function Min(a: , b: ): ; +/// a,b +function Min(a, b: byte): byte; +///-- +function Min(a, b: shortint): shortint; +///-- +function Min(a, b: word): word; +///-- +function Min(a, b: smallint): smallint; +///-- +function Min(a, b: integer): integer; +///-- +function Min(a, b: BigInteger): BigInteger; +///-- +function Min(a, b: longword): longword; +///-- +function Min(a, b: int64): int64; +///-- +function Min(a, b: uint64): uint64; +///-- +function Min(a, b: real): real; +///-function Odd(i: ): boolean; +/// True, i , False +function Odd(i: byte): boolean; +///-- +function Odd(i: shortint): boolean; +///-- +function Odd(i: word): boolean; +///-- +function Odd(i: smallint): boolean; +///-- +function Odd(i: integer): boolean; +///-- +function Odd(i: BigInteger): boolean; +///-- +function Odd(i: longword): boolean; +///-- +function Odd(i: int64): boolean; +///-- +function Odd(i: uint64): boolean; + +// ----------------------------------------------------- +//>> # Functions for Complex numbers +// ----------------------------------------------------- +/// re im +function Cplx(re, im: real): Complex; +/// +function CplxFromPolar(magnitude, phase: real): Complex; +/// +function Sqrt(c: Complex): Complex; +/// +function Abs(c: Complex): Complex; +/// +function Conjugate(c: Complex): Complex; +/// +function Cos(c: Complex): Complex; +/// +function Exp(c: Complex): Complex; +/// +function Ln(c: Complex): Complex; +/// +function Log(c: Complex): Complex; +/// +function Log10(c: Complex): Complex; +/// +function Power(c, power: Complex): Complex; +/// +function Sin(c: Complex): Complex; + +// ----------------------------------------------------- +//>> # Subroutines for set of T +// ----------------------------------------------------- +///- procedure Include(var s: set of T; element: T); +/// element s +procedure Include(var s: TypedSet; el: object); +///- procedure Exclude(var s: set of T; element: T); +/// element s +procedure Exclude(var s: TypedSet; el: object); + +// ----------------------------------------------------- +//>> # Subroutines for char +// ----------------------------------------------------- +/// c 1 +procedure Inc(var c: char); +/// c n +procedure Inc(var c: char; n: integer); +/// c 1 +procedure Dec(var c: char); +/// c n +procedure Dec(var c: char; n: integer); +/// x +function Pred(x: char): char; +/// x +function Succ(x: char): char; +/// Windows +function ChrAnsi(a: byte): char; +/// Windows +function OrdAnsi(a: char): byte; +/// Unicode +function Chr(a: word): char; +/// Unicode +function Ord(a: char): word; +/// Unicode +function ChrUnicode(a: word): char; +/// Unicode +function OrdUnicode(a: char): word; +/// +function UpperCase(ch: char): char; +/// +function LowerCase(ch: char): char; +/// +function UpCase(ch: char): char; +/// +function LowCase(ch: char): char; + +// ----------------------------------------------------- +//>> # Subroutines for string +// ----------------------------------------------------- +///-procedure Str(i: ; var s: string); +/// i s +procedure Str(i: integer; var s: string); +///-- +procedure Str(i: longword; var s: string); +///-- +procedure Str(i: int64; var s: string); +///-- +procedure Str(i: uint64; var s: string); +/// r s +procedure Str(r: real; var s: string); +/// r s +procedure Str(r: single; var s: string); +///-- +procedure Str(s1: string; var s: string); + +/// subs s. , 0 +function Pos(subs, s: string; from: integer := 1): integer; +/// subs s from. , 0 +function PosEx(subs, s: string; from: integer := 1): integer; +/// subs s. , 0 +function LastPos(subs, s: string): integer; +/// subs s from. , 0 +function LastPos(subs, s: string; from: integer): integer; + +/// +function Length(s: string): integer; +/// s n +procedure SetLength(var s: string; n: integer); +///-- +procedure SetLengthForShortString(var s: string; n, sz: integer); +/// source s index +procedure Insert(source: string; var s: string; index: integer); +///-- +procedure InsertInShortString(source: string; var s: string; index, n: integer); +/// s count index +procedure Delete(var s: string; index, count: integer); +/// s count index +function Copy(s: string; index, count: integer): string; +///-function Concat(s1,s2,...): string; +/// , s1,s2,... +function Concat(params strs: array of string): string; +/// , s1 s2 +function Concat(s1, s2: string): string; +/// +function LowerCase(s: string): string; +/// +function UpperCase(s: string): string; +/// , count ch +function StringOfChar(ch: char; count: integer): string; +/// +function ReverseString(s: string): string; +/// length index +function ReverseString(s: string; index,length: integer): string; +/// . < 0 s1 0 s1>s2 = 0 s1=s2 +function CompareStr(s1, s2: string): integer; +/// count s +function LeftStr(s: string; count: integer): string; +/// count s +function RightStr(s: string; count: integer): string; + +/// +function Trim(s: string): string; +/// +function TrimLeft(s: string): string; +/// +function TrimRight(s: string): string; + +/// +function StrToInt(s: string): integer; +/// +function StrToInt64(s: string): int64; +/// +function StrToFloat(s: string): real; +/// +function StrToReal(s: string): real; +/// s value. +/// False +function TryStrToInt(s: string; var value: integer): boolean; +/// s value. +/// False +function TryStrToInt64(s: string; var value: int64): boolean; +/// s value. +/// False +function TryStrToFloat(s: string; var value: real): boolean; +/// s value. +/// False +function TryStrToFloat(s: string; var value: single): boolean; +/// s value. +/// False +function TryStrToReal(s: string; var value: real): boolean; +/// s value. +/// False +function TryStrToSingle(s: string; var value: single): boolean; +/// from from +function ReadIntegerFromString(s: string; var from: integer): integer; +/// from from +function ReadRealFromString(s: string; var from: integer): real; +/// from from +function ReadWordFromString(s: string; var from: integer): string; +/// True False +function StringIsEmpty(s: string; var from: integer): boolean; +/// from from . +/// True False +function TryReadIntegerFromString(s: string; var from: integer; var res: integer): boolean; +/// from from . +/// True False +function TryReadRealFromString(s: string; var from: integer; var res: real): boolean; + +///-procedure Val(s: string; var value: ; var err: integer); +/// s value. +/// , err=0, err>0 +procedure Val(s: string; var value: integer; var err: integer); +///-- +procedure Val(s: string; var value: shortint; var err: integer); +///-- +procedure Val(s: string; var value: smallint; var err: integer); +///-- +procedure Val(s: string; var value: int64; var err: integer); +///-- +procedure Val(s: string; var value: byte; var err: integer); +///-- +procedure Val(s: string; var value: word; var err: integer); +///-- +procedure Val(s: string; var value: longword; var err: integer); +///-- +procedure Val(s: string; var value: uint64; var err: integer); +///-- +procedure Val(s: string; var value: real; var err: integer); +///-- +procedure Val(s: string; var value: single; var err: integer); + +/// +function IntToStr(a: integer): string; +/// +function IntToStr(a: int64): string; +/// +function FloatToStr(a: real): string; + +/// , +function Format(formatstring: string; params pars: array of object): string; + +// ----------------------------------------------------- +//>> # Common subroutines +// ----------------------------------------------------- +/// i 1 +procedure Inc(var i: integer); +/// i n +procedure Inc(var i: integer; n: integer); +/// i 1 +procedure Dec(var i: integer); +/// i n +procedure Dec(var i: integer; n: integer); +///-procedure Inc(var e: ); +/// 1 +procedure Inc(var b: byte); +///-procedure Inc(var e: ; n: integer); +/// n +procedure Inc(var b: byte; n: integer); +///-procedure Dec(var e: ); +/// 1 +procedure Dec(var b: byte); +///-procedure Dec(var e: ; n: integer); +/// n +procedure Dec(var b: byte; n: integer); +///-- +procedure Inc(var f: boolean); +///-- +procedure Dec(var f: boolean); +///-function Ord(a: ): ; +/// a +function Ord(a: integer): integer; +///-function Ord(a: ): integer; +/// a +function Ord(a: longword): longword; +///-- +function Ord(a: int64): int64; +///-- +function Ord(a: uint64): uint64; +///-- +function Ord(a: boolean): integer; + +///-function Succ(x: ): ; +/// x +function Succ(x: integer): integer; +///-function Succ(x: ): ; +/// x +function Succ(x: byte): byte; +///-- +function Succ(x: shortint): shortint; +///-- +function Succ(x: smallint): smallint; +///-- +function Succ(x: word): word; +///-- +function Succ(x: longword): longword; +///-- +function Succ(x: int64): int64; +///-- +function Succ(x: uint64): uint64; +///-- +function Succ(x: boolean): boolean; + +///-function Pred(x: ): ; +/// x +function Pred(x: integer): integer; +///-function Pred(x: ): ; +/// x +function Pred(x: byte): byte; +///-- +function Pred(x: shortint): shortint; +///-- +function Pred(x: smallint): smallint; +///-- +function Pred(x: word): word; +///-- +function Pred(x: longword): longword; +///-- +function Pred(x: int64): int64; +///-- +function Pred(x: uint64): uint64; +///-- +function Pred(x: boolean): boolean; + +/// +procedure Swap(var a, b: T); +/// True, +function Eoln: boolean; +/// True, +function Eof: boolean; + +// ----------------------------------------------------- +//>> # Subroutines for array of T +// ----------------------------------------------------- +///- function Low(a: array of T): integer; +/// 0 +function Low(i: System.Array): integer; +///- function High(a: array of T): integer; +/// +function High(i: System.Array): integer; +///- function Length(a: array of T): integer; +/// +function Length(a: System.Array): integer; +///- function Length(a: array of T; dim: integer): integer; +/// dim +function Length(a: System.Array; dim: integer): integer; +///- procedure SetLength(var a: array of T); +/// . +//procedure SetLength(var a: System.Array); +///- procedure SetLength(var a: array of T; n1,n2,...: integer); +/// n- . +//procedure SetLength(var a: System.Array); +///- function Copy(a: array of T): array of T; +/// +function Copy(a: System.Array): System.Array; +/// +procedure Sort(a: array of T); +/// , cmp +procedure Sort(a: array of T; cmp: (T,T)->integer); +/// , less +procedure Sort(a: array of T; less: (T,T)->boolean); +/// +procedure Sort(l: List); +/// , cmp +procedure Sort(l: List; cmp: (T,T)->integer); +/// , less +procedure Sort(l: List; less: (T,T)->boolean); +/// +procedure Reverse(a: array of T); +/// count, index +procedure Reverse(a: array of T; index, count: integer); +/// +procedure Reverse(a: List); +/// count, index +procedure Reverse(a: List; index, count: integer); +/// +procedure Shuffle(a: array of T); +/// +procedure Shuffle(l: List); + +// ----------------------------------------------------- +//>> # Subroutines for sequence generation +// ----------------------------------------------------- +/// a b +function Range(a, b: integer): sequence of integer; +/// c1 c2 +function Range(c1, c2: char): sequence of char; +/// [a,b] n ( Partition) +function Range(a, b: real; n: integer): sequence of real; +/// [a,b] n +function Partition(a, b: real; n: integer): sequence of real; +/// a b step +function Range(a, b, step: integer): sequence of integer; +/// +function Seq(params a: array of T): sequence of T; +/// n +function SeqRandom(n: integer := 10; a: integer := 0; b: integer := 100): sequence of integer; +/// n +function SeqRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): sequence of integer; +/// n +function SeqRandomReal(n: integer := 10; a: real := 0; b: real := 10): sequence of real; +/// count , f(i) +function SeqGen(count: integer; f: integer->T): sequence of T; +/// count , f(i), i=from +function SeqGen(count: integer; f: integer->T; from: integer): sequence of T; +/// count , first, next +function SeqGen(count: integer; first: T; next: T->T): sequence of T; +/// count , first second, +/// next +function SeqGen(count: integer; first, second: T; next: (T,T) ->T): sequence of T; +/// first, +/// next pred +function SeqWhile(first: T; next: T->T; pred: T->boolean): sequence of T; +/// , first second, +/// next pred +function SeqWhile(first, second: T; next: (T,T) ->T; pred: T->boolean): sequence of T; +/// count x +function SeqFill(count: integer; x: T): sequence of T; + +/// n , +function ReadSeqInteger(n: integer): sequence of integer; +/// n , +function ReadSeqReal(n: integer): sequence of real; +/// n , +function ReadSeqString(n: integer): sequence of string; + +/// n , +function ReadSeqInteger(prompt: string; n: integer): sequence of integer; +/// n , +function ReadSeqReal(prompt: string; n: integer): sequence of real; +/// n , +function ReadSeqString(prompt: string; n: integer): sequence of string; + +/// , +function ReadSeqIntegerWhile(cond: integer->boolean): sequence of integer; +/// , +function ReadSeqRealWhile(cond: real->boolean): sequence of real; +/// , +function ReadSeqStringWhile(cond: string->boolean): sequence of string; + +/// , +function ReadSeqIntegerWhile(prompt: string; cond: integer->boolean): sequence of integer; +/// , +function ReadSeqRealWhile(prompt: string; cond: real->boolean): sequence of real; +/// , +function ReadSeqStringWhile(prompt: string; cond: string->boolean): sequence of string; + +// ----------------------------------------------------- +//>> # Subroutines for array of T generation +// ----------------------------------------------------- +/// , +function Arr(params a: array of T): array of T; +/// , +function Arr(a: sequence of T): array of T; +/// n, +function ArrRandom(n: integer := 10; a: integer := 0; b: integer := 100): array of integer; +/// n, +function ArrRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): array of integer; +/// n, +function ArrRandomReal(n: integer := 10; a: real := 0; b: real := 10): array of real; +/// count , gen(i) +function ArrGen(count: integer; gen: integer->T): array of T; +/// count , gen(i), i=from +function ArrGen(count: integer; gen: integer->T; from: integer): array of T; +/// count , first, next +function ArrGen(count: integer; first: T; next: T->T): array of T; +/// count , first second, next +function ArrGen(count: integer; first, second: T; next: (T,T) ->T): array of T; +/// count x +function ArrFill(count: integer; x: T): array of T; + +/// n , +function ReadArrInteger(n: integer): array of integer; +/// n , +function ReadArrReal(n: integer): array of real; +/// n , +function ReadArrString(n: integer): array of string; + +/// n , +function ReadArrInteger(prompt: string; n: integer): array of integer; +/// n , +function ReadArrReal(prompt: string; n: integer): array of real; +/// n , +function ReadArrString(prompt: string; n: integer): array of string; + +// ----------------------------------------------------- +//>> # Subroutines for matrixes +// ----------------------------------------------------- +/// m x n, +function Matr(m,n: integer; params data: array of T): array [,] of T; +/// m x n, +function MatrRandom(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +/// m x n, +function MatrRandomInteger(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +/// m x n, +function MatrRandomReal(m: integer := 5; n: integer := 5; a: real := 0; b: real := 10): array [,] of real; +/// m x n, x +function MatrFill(m, n: integer; x: T): array [,] of T; +/// m x n, x +function MatrGen(m, n: integer; gen: (integer,integer)->T): array [,] of T; +/// +function Transpose(a: array [,] of T): array [,] of T; +/// m n , +function ReadMatrInteger(m, n: integer): array [,] of integer; +/// m n , +function ReadMatrReal(m, n: integer): array [,] of real; + + +// ----------------------------------------------------- +//>> # Subroutines for tuple generation +// ----------------------------------------------------- +///- function Rec(x1: T1, x2: T2,...): (T1,T2,...); +/// +function Rec(x1: T1; x2: T2): System.Tuple; +///-- +function Rec(x1: T1; x2: T2; x3: T3): (T1, T2, T3); +///-- +function Rec(x1: T1; x2: T2; x3: T3; x4: T4): (T1, T2, T3, T4); +///-- +function Rec(x1: T1; x2: T2; x3: T3; x4: T4; x5: T5): (T1, T2, T3, T4, T5); +///-- +function Rec(x1: T1; x2: T2; x3: T3; x4: T4; x5: T5; x6: T6): (T1, T2, T3, T4, T5, T6); +///-- +function Rec(x1: T1; x2: T2; x3: T3; x4: T4; x5: T5; x6: T6; x7: T7): (T1, T2, T3, T4, T5, T6, T7); + +// ----------------------------------------------------- +//>> Lst, LLst, HSet, SSet, Dict, KV # Short functions Lst, HSet, SSet, Dict, KV +// ----------------------------------------------------- +/// , +function Lst(params a: array of T): List; +/// , +function Lst(a: sequence of T): List; +/// , +function LLst(params a: array of T): LinkedList; +/// , +function LLst(a: sequence of T): LinkedList; +/// , +function HSet(params a: array of T): HashSet; +/// , +function HSet(a: sequence of T): HashSet; +/// , +function SSet(params a: array of T): SortedSet; +/// , +function SSet(a: sequence of T): SortedSet; +/// (, ) +function Dict(params pairs: array of KeyValuePair): Dictionary; +/// (, ) +function Dict(params pairs: array of (TKey, TVal)): Dictionary; +/// (, ) +function KV(key: TKey; value: TVal): KeyValuePair; + + +// ----------------------------------------------------- +//>> # Infinite sequences +// ----------------------------------------------------- +// 2016: Iterate, Step, Repeat, Cycle + +// , next +///-- +function Iterate(Self: T; next: T->T): sequence of T; extensionmethod; +begin + Result := Iterate(Self, next); +end; + +// , , next +///-- +function Iterate(Self, second: T; next: (T,T) ->T): sequence of T; extensionmethod; +begin + Result := Iterate(Self, second, next); +end; + +/// 1 +function Step(Self: integer): sequence of integer; extensionmethod; +begin + while True do + begin + yield Self; + Self += 1; + end; +end; + +/// step +function Step(Self: integer; step: integer): sequence of integer; extensionmethod; +begin + while True do + begin + yield Self; + Self += step; + end; +end; + +/// step +function Step(Self: real; step: real): sequence of real; extensionmethod; +begin + while True do + begin + yield Self; + Self += step; + end; +end; + +// , +///-- +function Repeat(Self: T): sequence of T; extensionmethod; +begin + while True do + yield Self; +end; + +/// +function Cycle(Self: sequence of T): sequence of T; extensionmethod; +begin + while True do + begin + foreach var x in Self do + yield x; + end; +end; + +// ----------------------------------------------------- +//>> XXX - ! # XXX +// ----------------------------------------------------- +type + AdjGroupClass = class + private + cur: T; + enm: IEnumerator; + fin: boolean; + public + constructor Create(a: sequence of T); + begin + enm := a.GetEnumerator(); + fin := enm.MoveNext; + if fin then + cur := enm.Current; + end; + + function TakeGroup: sequence of T; + begin + yield cur; + fin := enm.movenext; + while fin do + begin + if enm.current = cur then + yield enm.current + else + begin + cur := enm.Current; + break; + end; + fin := enm.movenext; + end; + end; + end; + +//------------------------------------------------------------------------------ +//>> Print # Print for elementary types +//------------------------------------------------------------------------------ +function Print(Self: integer): integer; extensionmethod; +begin + PABCSystem.Print(Self); + Result := Self; +end; + +function Print(Self: real): real; extensionmethod; +begin + PABCSystem.Print(Self); + Result := Self; +end; + +function Print(Self: char): char; extensionmethod; +begin + PABCSystem.Print(Self); + Result := Self; +end; + +function Print(Self: boolean): boolean; extensionmethod; +begin + PABCSystem.Print(Self); + Result := Self; +end; + +function Print(Self: BigInteger): BigInteger; extensionmethod; +begin + PABCSystem.Print(Self); + Result := Self; +end; + +function Println(Self: integer): integer; extensionmethod; +begin + PABCSystem.Println(Self); + Result := Self; +end; + +function Println(Self: real): real; extensionmethod; +begin + PABCSystem.Println(Self); + Result := Self; +end; + +function Println(Self: char): char; extensionmethod; +begin + PABCSystem.Println(Self); + Result := Self; +end; + +function Println(Self: boolean): boolean; extensionmethod; +begin + PABCSystem.Println(Self); + Result := Self; +end; + +function Println(Self: BigInteger): BigInteger; extensionmethod; +begin + PABCSystem.Println(Self); + Result := Self; +end; + + + +//------------------------------------------------------------------------------ +//>> sequence of T # Extension methods for sequence of T +//------------------------------------------------------------------------------ +/// , delim +function Print(Self: sequence of T; delim: string): sequence of T; extensionmethod; +begin + var g := Self.GetEnumerator(); + if g.MoveNext() then + Write(g.Current); + while g.MoveNext() do + if delim <> '' then + Write(delim, g.Current) + else Write(g.Current); + Result := Self; +end; + +/// , +function Print(Self: sequence of T): sequence of T; extensionmethod; +begin + if typeof(T) = typeof(char) then + Result := Self.Print('') + else + Result := Self.Print(PrintDelimDefault); +end; + +/// , delim , +function Println(Self: sequence of T; delim: string): sequence of T; extensionmethod; +begin + Self.Print(delim); + Writeln; + Result := Self; +end; + +/// , , +function Println(Self: sequence of T): sequence of T; extensionmethod; +begin + if typeof(T) = typeof(char) then + Result := Self.Println('') + else + Result := Self.Println(PrintDelimDefault); +end; + +/// +function WriteLines(Self: sequence of string; fname: string): sequence of string; extensionmethod; +begin + WriteLines(fname, Self); + Result := Self +end; + +/// , +function PrintLines(Self: sequence of T): sequence of T; extensionmethod; +begin + Self.Println(NewLine); + Result := Self +end; + +/// , map +function PrintLines(Self: sequence of T; map: T->T1): sequence of T; extensionmethod; +begin + Self.Select(map).Println(NewLine); + Result := Self +end; + +/// , , delim +function JoinIntoString(Self: sequence of T; delim: string): string; extensionmethod; +begin + var g := Self.GetEnumerator(); + var sb := new System.Text.StringBuilder(''); + if g.MoveNext() then + sb.Append(g.Current.ToString()); + while g.MoveNext() do + sb.Append(delim + g.Current.ToString()); + Result := sb.ToString; +end; + +/// , , +function JoinIntoString(Self: sequence of T): string; extensionmethod; +begin + if typeof(T) = typeof(char) then + Result := Self.JoinIntoString('') + else Result := Self.JoinIntoString(' '); +end; + +/// +procedure ForEach(Self: sequence of T; action: T -> ()); extensionmethod; +begin + foreach x: T in Self do + action(x); +end; + +/// , +procedure ForEach(Self: sequence of T; action: (T,integer) -> ()); extensionmethod; +begin + var i := 0; + foreach x: T in Self do + begin + action(x, i); + i += 1; + end; +end; + +/// +function Sorted(Self: sequence of T): sequence of T; extensionmethod; +begin + Result := Self.OrderBy(x -> x); +end; + +/// +function SortedDescending(Self: sequence of T): sequence of T; extensionmethod; +begin + Result := Self.OrderByDescending(x -> x); +end; + +/// +function Order(Self: sequence of T): sequence of T; extensionmethod; +begin + Result := Self.OrderBy(x -> x); +end; + +/// +function OrderDescending(Self: sequence of T): sequence of T; extensionmethod; +begin + Result := Self.OrderByDescending(x -> x); +end; + +/// HashSet +function ToHashSet(Self: sequence of T): HashSet; extensionmethod; +begin + Result := new HashSet(Self); +end; + +/// SortedSet +function ToSortedSet(Self: sequence of T): SortedSet; extensionmethod; +begin + Result := new SortedSet(Self); +end; + +/// LinkedList +function ToLinkedList(Self: sequence of T): LinkedList; extensionmethod; +begin + Result := new LinkedList(Self); +end; + +// 2016: MinBy, MaxBy, TakeLast, Slice, Cartesian, SplitAt, +// Partition, ZipTuple, UnZipTuple, Interleave, Numerate, Tabulate, Pairwise, Batch + +/// +function MinBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +begin + if selector = nil then + raise new ArgumentNullException('selector'); + if not Self.Any() then + raise new InvalidOperationException('Empty sequence'); + + var comp := Comparer.Default; + Result := Self.Aggregate((min, x)-> comp.Compare(selector(x), selector(min)) < 0 ? x : min); +end; + +/// +function MaxBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +begin + if selector = nil then + raise new ArgumentNullException('selector'); + if not Self.Any() then + raise new InvalidOperationException('Empty sequence'); + + var comp := Comparer.Default; + Result := Self.Aggregate((max, x)-> comp.Compare(selector(x), selector(max)) > 0 ? x : max); +end; + +/// +function LastMinBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +begin + if selector = nil then + raise new ArgumentNullException('selector'); + if not Self.Any() then + raise new InvalidOperationException('Empty sequence'); + + var comp := Comparer.Default; + Result := Self.Aggregate((min, x)-> comp.Compare(selector(x), selector(min)) <= 0 ? x : min); +end; + +/// +function LastMaxBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +begin + if selector = nil then + raise new ArgumentNullException('selector'); + if not Self.Any() then + raise new InvalidOperationException('Empty sequence'); + + var comp := Comparer.Default; + Result := Self.Aggregate((max, x)-> comp.Compare(selector(x), selector(max)) >= 0 ? x : max); +end; + +/// count +function TakeLast(Self: sequence of T; count: integer): sequence of T; extensionmethod; +begin + Result := Self.Reverse.Take(count).Reverse; +end; + +/// count +function SkipLast(self: sequence of T; count: integer := 1): sequence of T; extensionmethod; +begin + Result := Self.Reverse.Skip(count).Reverse; +end; + +/// +function Cartesian(Self: sequence of T; b: sequence of T1): sequence of (T, T1); extensionmethod; +begin + if b = nil then + raise new System.ArgumentNullException('b'); + + foreach var x in Self do + foreach var y in b do + yield (x, y) +end; + +/// +function Cartesian(Self: sequence of T; b: sequence of T1; func: (T,T1)->T2): sequence of T2; extensionmethod; +begin + if b = nil then + raise new System.ArgumentNullException('b'); + + foreach var x in Self do + foreach var y in b do + yield func(x, y) +end; + +/// ind +function SplitAt(Self: sequence of T; ind: integer): (sequence of T, sequence of T); extensionmethod; +begin + Result := (Self.Take(ind), Self.Skip(ind)); +end; + +// ToDo: TakeWhile + +// ToDo: SequenceCompare + +/// +function Partition(Self: sequence of T; cond: T->boolean): (sequence of T, sequence of T); extensionmethod; +begin + Result := (Self.Where(cond), Self.Where(x -> not cond(x))); +end; + +/// , +function Partition(Self: sequence of T; cond: (T,integer)->boolean): (sequence of T, sequence of T); extensionmethod; +begin + Result := (Self.Where(cond), Self.Where((x, i)-> not cond(x, i))); +end; + +/// +function ZipTuple(Self: sequence of T; a: sequence of T1): sequence of (T, T1); extensionmethod; +begin + if a = nil then + raise new System.ArgumentNullException('a'); + Result := Self.Zip(a, (x, y)-> (x, y)); +end; + +/// +function ZipTuple(Self: sequence of T; a: sequence of T1; b: sequence of T2): sequence of (T, T1, T2); extensionmethod; +begin + if a = nil then + raise new System.ArgumentNullException('a'); + if b = nil then + raise new System.ArgumentNullException('b'); + Result := Self.Zip(a, (x, y)-> (x, y)).Zip(b, (p, z)-> (p[0], p[1], z)); +end; + +/// +function ZipTuple(Self: sequence of T; a: sequence of T1; b: sequence of T2; c: sequence of T3): sequence of (T, T1, T2, T3); extensionmethod; +begin + if a = nil then + raise new System.ArgumentNullException('a'); + if b = nil then + raise new System.ArgumentNullException('b'); + if c = nil then + raise new System.ArgumentNullException('c'); + Result := Self.Zip(a, (x, y)-> (x, y)).Zip(b, (p, z)-> (p[0], p[1], z)).Zip(c, (p, z)-> (p[0], p[1], p[2], z)); +end; + +/// +function UnZipTuple(Self: sequence of (T, T1)): (sequence of T, sequence of T1); extensionmethod; +begin + Result := (Self.Select(x -> x[0]), Self.Select(x -> x[1])) +end; + +/// +function UnZipTuple(Self: sequence of (T, T1, T2)): (sequence of T, sequence of T1, sequence of T2); extensionmethod; +begin + Result := (Self.Select(x -> x[0]), Self.Select(x -> x[1]), Self.Select(x -> x[2])) +end; + +/// +function UnZipTuple(Self: sequence of (T, T1, T2, T3)): (sequence of T, sequence of T1, sequence of T2, sequence of T3); extensionmethod; +begin + Result := (Self.Select(x -> x[0]), Self.Select(x -> x[1]), Self.Select(x -> x[2]), Self.Select(x -> x[3])) +end; + +// ToDo - UnZipTuple - + +/// +function Interleave(Self: sequence of T; a: sequence of T): sequence of T; extensionmethod; +begin + if a = nil then + raise new System.ArgumentNullException('a'); + Result := Self.ZipTuple(a).SelectMany(x -> Seq(x[0], x[1])) +end; + +/// +function Interleave(Self: sequence of T; a, b: sequence of T): sequence of T; extensionmethod; +begin + if a = nil then + raise new System.ArgumentNullException('a'); + if b = nil then + raise new System.ArgumentNullException('b'); + Result := Self.ZipTuple(a, b).SelectMany(x -> Seq(x[0], x[1], x[2])) +end; + +/// +function Interleave(Self: sequence of T; a, b, c: sequence of T): sequence of T; extensionmethod; +begin + if a = nil then + raise new System.ArgumentNullException('a'); + if b = nil then + raise new System.ArgumentNullException('b'); + if c = nil then + raise new System.ArgumentNullException('c'); + Result := Self.ZipTuple(a, b, c).SelectMany(x -> Seq(x[0], x[1], x[2], x[3])) +end; + +/// +function Numerate(Self: sequence of T): sequence of (integer, T); extensionmethod; +begin + Result := 1.Step.ZipTuple(Self); +end; + +/// from +function Numerate(Self: sequence of T; from: integer): sequence of (integer, T); extensionmethod; +begin + Result := from.Step.ZipTuple(Self); +end; + +/// +function Tabulate(Self: sequence of T; F: T->T1): sequence of (T, T1); extensionmethod; +begin + Result := Self.Select(x -> (x, f(x))); +end; + +/// +function Pairwise(Self: sequence of T): sequence of (T, T); extensionmethod; +begin + var previous: T; + var it := Self.GetEnumerator(); + if (it.MoveNext()) then + previous := it.Current; + + while (it.MoveNext()) do + begin + yield (previous, it.Current); + previous := it.Current; + end +end; + +/// , func +function Pairwise(Self: sequence of T; func: (T,T)->Res): sequence of Res; extensionmethod; +begin + var previous: T; + var it := Self.GetEnumerator(); + if (it.MoveNext()) then + previous := it.Current; + + while (it.MoveNext()) do + begin + yield func(previous, it.Current); + previous := it.Current; + end + // Result := Self.ZipTuple(Self.Skip(1)).Select(x->func(x[0],x[1])); +end; + +/// size +function Batch(Self: sequence of T; size: integer): sequence of sequence of T; extensionmethod; +begin + Result := SeqWhile(Self, v -> v.Skip(size), v -> v.Count > 0).Select(v -> v.Take(size)) +end; + +/// size +function Batch(Self: sequence of T; size: integer; proj: Func, Res>): sequence of Res; extensionmethod; +begin + Result := SeqWhile(Self, v -> v.Skip(size), v -> v.Count > 0).Select(v -> v.Take(size)).Select(ss -> proj(ss)); +end; + +///-- +function SliceSeqImpl(Self: sequence of T; from, step, count: integer): sequence of T; +begin + if step <= 0 then + raise new ArgumentException(GetTranslation(PARAMETER_STEP_MUST_BE_GREATER_0)); + + if from < 0 then + raise new ArgumentException(GetTranslation(PARAMETER_FROM_OUT_OF_RANGE)); + + Result := Self.Skip(from).Where((x, i)-> i mod step = 0) +end; + +/// from step > 0 +function Slice(Self: sequence of T; from, step: integer): sequence of T; extensionmethod; +begin + if step <= 0 then + raise new ArgumentException(GetTranslation(PARAMETER_STEP_MUST_BE_GREATER_0)); + + if from < 0 then + raise new ArgumentException(GetTranslation(PARAMETER_FROM_OUT_OF_RANGE)); + + Result := Self.Skip(from).Where((x, i)-> i mod step = 0) +end; + +/// from step > 0 count +function Slice(Self: sequence of T; from, step, count: integer): sequence of T; extensionmethod; +begin + if step <= 0 then + raise new ArgumentException(GetTranslation(PARAMETER_STEP_MUST_BE_GREATER_0)); + + if from < 0 then + raise new ArgumentException(GetTranslation(PARAMETER_FROM_OUT_OF_RANGE)); + + Result := Self.Skip(from).Where((x, i)-> i mod step = 0).Take(count) +end; + +// 2016: Incremental +///-- +{function IncrementalSeq(Self: sequence of integer): sequence of integer; +begin + var iter := Self.GetEnumerator(); + if iter.MoveNext() then + begin + var prevItem := iter.Current; + while iter.MoveNext() do + begin + var nextItem := iter.Current; + yield nextItem - prevItem; + prevItem := nextItem; + end + end +end; + +///-- +function IncrementalSeq(Self: sequence of real): sequence of real; +begin + var iter := Self.GetEnumerator(); + if iter.MoveNext() then + begin + var prevItem := iter.Current; + while iter.MoveNext() do + begin + var nextItem := iter.Current; + yield nextItem - prevItem; + prevItem := nextItem; + end + end +end; + +/// +function Incremental(Self: sequence of integer): sequence of integer; extensionmethod; +begin + Result := IncrementalSeq(Self); +end; + +/// +function Incremental(Self: array of integer): sequence of integer; extensionmethod; +begin + Result := IncrementalSeq(Self); +end; + +/// +function Incremental(Self: List): sequence of integer; extensionmethod; +begin + Result := IncrementalSeq(Self); +end; + +/// +function Incremental(Self: LinkedList): sequence of integer; extensionmethod; +begin + Result := IncrementalSeq(Self); +end; + +/// +function Incremental(Self: sequence of real): sequence of real; extensionmethod; +begin + Result := IncrementalSeq(Self); +end; + +/// +function Incremental(Self: array of real): sequence of real; extensionmethod; +begin + Result := IncrementalSeq(Self); +end; + +/// +function Incremental(Self: List): sequence of real; extensionmethod; +begin + Result := IncrementalSeq(Self); +end; + +/// +function Incremental(Self: LinkedList): sequence of real; extensionmethod; +begin + Result := IncrementalSeq(Self); +end;} + +/// . func +function Incremental(Self: sequence of T; func: (T,T)->T1): sequence of T1; extensionmethod; +begin + var iter := Self.GetEnumerator(); + if iter.MoveNext() then + begin + var prevItem := iter.Current; + while iter.MoveNext() do + begin + var nextItem := iter.Current; + yield func(prevItem, nextItem); + prevItem := nextItem; + end + end +end; + +/// . func +function Incremental(Self: sequence of T; func: (T,T,integer)->T1): sequence of T1; extensionmethod; +begin + var iter := Self.GetEnumerator(); + if iter.MoveNext() then + begin + var ind := 0; + var prevItem := iter.Current; + while iter.MoveNext() do + begin + var nextItem := iter.Current; + ind += 1; + yield func(prevItem, nextItem, ind); + prevItem := nextItem; + end + end +end; + +/// , +function AdjacentGroup(Self: sequence of T): sequence of array of T; extensionmethod; +begin + var c := new AdjGroupClass(Self); + while c.fin do + yield c.TakeGroup().ToArray; +end; + +// ToDo AdjacentGroup + +// ----------------------------------------------------- +//>> List # Extension methods for List T +// ----------------------------------------------------- + +/// +function Shuffle(Self: List): List; extensionmethod; +begin + var n := Self.Count; + for var i := 0 to n - 1 do + begin + var r := PABCSystem.Random(n); + var v := Self[i]; + Self[i] := Self[r]; + Self[r] := v; + end; + Result := Self; +end; + +/// . , -1 +function AdjacentFind(Self: IList; start: integer := 0): integer; extensionmethod; +begin + Result := -1; + for var i := start to Self.Count - 2 do + if Self[i] = Self[i + 1] then + begin + Result := i; + exit; + end; +end; + +/// , eq, . , -1 +function AdjacentFind(Self: IList; eq: (T,T)->boolean; start: integer := 0): integer; extensionmethod; +begin + Result := -1; + for var i := start to Self.Count - 2 do + if eq(Self[i], Self[i + 1]) then + begin + Result := i; + exit; + end; +end; + +/// index +function IndexMin(Self: IList; index: integer := 0): integer; extensionmethod;where T: IComparable; +begin + var min := Self[index]; + Result := index; + for var i := index + 1 to Self.Count - 1 do + if Self[i].CompareTo(min) < 0 then + begin + Result := i; + min := Self[i]; + end; +end; + +/// index +function IndexMax(self: IList; index: integer := 0): integer; extensionmethod;where T: System.IComparable; +begin + var max := Self[index]; + Result := index; + for var i := index + 1 to Self.Count - 1 do + if Self[i].CompareTo(max) > 0 then + begin + Result := i; + max := Self[i]; + end; +end; + +/// +function LastIndexMin(Self: IList): integer; extensionmethod;where T: System.IComparable; +begin + var min := Self[Self.Count - 1]; + Result := Self.Count - 1; + for var i := Self.Count - 2 downto 0 do + if Self[i].CompareTo(min) < 0 then + begin + Result := i; + min := Self[i]; + end; +end; + +/// [0,index-1] +function LastIndexMin(Self: IList; index: integer): integer; extensionmethod;where T: System.IComparable; +begin + var min := Self[index]; + Result := index; + for var i := index - 1 downto 0 do + if Self[i].CompareTo(min) < 0 then + begin + Result := i; + min := Self[i]; + end; +end; + +/// +function LastIndexMax(Self: IList): integer; extensionmethod;where T: System.IComparable; +begin + var max := Self[Self.Count - 1]; + Result := Self.Count - 1; + for var i := Self.Count - 2 downto 0 do + if Self[i].CompareTo(max) > 0 then + begin + Result := i; + max := Self[i]; + end; +end; + +/// [0,index-1] +function LastIndexMax(Self: IList; index: integer): integer; extensionmethod;where T: System.IComparable; +begin + var max := Self[index]; + Result := index; + for var i := index - 1 downto 0 do + if Self[i].CompareTo(max) > 0 then + begin + Result := i; + max := Self[i]; + end; +end; + +/// +procedure Replace(Self: IList; oldValue, newValue: T); extensionmethod; +begin + for var i := 0 to Self.Count - 1 do + if Self[i] = oldValue then + Self[i] := newValue; +end; + +/// +procedure Transform(Self: IList; f: T->T); extensionmethod; +begin + for var i := 0 to Self.Count - 1 do + Self[i] := f(Self[i]); +end; + +/// , +procedure Fill(Self: IList; f: integer->T); extensionmethod; +begin + for var i := 0 to Self.Count - 1 do + Self[i] := f(i); +end; + +///-- +function CreateSliceFromListInternal(Self: List; from, step, count: integer): List; +begin + Result := new List(count); + + var f := from; + loop count do + begin + Result.Add(Self[f]); + f += step; + end; +end; + +///-- +procedure CorrectCountForSlice(Len, from, step: integer; var count: integer); +begin + if step = 0 then + raise new ArgumentException(GetTranslation(PARAMETER_STEP_MUST_BE_NOT_EQUAL_0)); + + if count < 0 then + raise new ArgumentException(GetTranslation(PARAMETER_COUNT_MUST_BE_GREATER_0)); + + if (from < 0) or (from > Len - 1) then + raise new ArgumentException(GetTranslation(PARAMETER_FROM_OUT_OF_RANGE)); + + var cnt := step > 0 ? Len - from : from + 1; + var cntstep := (cnt - 1) div abs(step) + 1; + if count > cntstep then + count := cntstep; +end; + +///-- +function SliceListImpl(Self: List; from, step, count: integer): List; +begin + CorrectCountForSlice(Self.Count, from, step, count); + Result := CreateSliceFromListInternal(Self, from, step, count); +end; + +/// from step +function Slice(Self: List; from, step: integer): List; extensionmethod; +begin + Result := SliceListImpl(Self, from, step, integer.MaxValue); +end; + +/// from step count +function Slice(Self: List; from, step, count: integer): List; extensionmethod; +begin + Result := SliceListImpl(Self, from, step, count); +end; + +/// . , +function RemoveLast(Self: List): List; extensionmethod; +begin + Self.RemoveAt(Self.Count - 1); + Result := Self; +end; + +procedure CorrectFromTo(situation: integer; Len: integer; var from, to: integer; step: integer); +begin + if step > 0 then + begin + case situation of + 1: from := 0; + 2: to := Len; + 3: (from, to) := (0, Len) + end; + end + else + begin + case situation of + 1: from := Len - 1; + 2: to := -1; + 3: (from, to) := (Len - 1, -1); + end; + end; +end; + +///-- +function CorrectFromToAndCalcCountForSystemSliceQuestion(situation: integer; Len: integer; var from, to: integer; step: integer): integer; +begin + if step = 0 then + raise new ArgumentException(GetTranslation(PARAMETER_STEP_MUST_BE_NOT_EQUAL_0)); + + CorrectFromTo(situation, Len, from, to, step); + + if step > 0 then + begin + if from < 0 then + from += (step - from - 1) div step * step; + // from > Len - 1 + var m := Min(Len,to); + if from >= m then + Result := 0 + else Result := (m - from - 1) div step + 1 + end + else + begin + if from > Len - 1 then + from -= (from - Len - step) div step * step; + // from < 0 + var m := Max(to,-1); + if from <= m then + Result := 0 + else Result := (from - m - 1) div (-step) + 1 + end; +end; + +///-- +function CheckAndCorrectFromToAndCalcCountForSystemSlice(situation: integer; Len: integer; var from, to: integer; step: integer): integer; +begin + // situation = 0 - + // situation = 1 - from + // situation = 2 - to + // situation = 3 - from to + if step = 0 then + raise new ArgumentException(GetTranslation(PARAMETER_STEP_MUST_BE_NOT_EQUAL_0)); + + if (situation = 0) or (situation = 2) then + if (from < 0) or (from > Len - 1) then + raise new ArgumentException(GetTranslation(PARAMETER_FROM_OUT_OF_RANGE)); + + if (situation = 0) or (situation = 1) then + if (to < -1) or (to > Len) then + raise new ArgumentException(GetTranslation(PARAMETER_TO_OUT_OF_RANGE)); + + CorrectFromTo(situation, Len, from, to, step); + + var count: integer; + + if step > 0 then + begin + var cnt := to - from; + if cnt <= 0 then + count := 0 + else count := (cnt - 1) div step + 1; + end + else + begin + var cnt := from - to; + if cnt <= 0 then + count := 0 + else count := (cnt - 1) div (-step) + 1; + end; + + Result := count; +end; + +///-- +procedure CheckStepAndCorrectFromTo(situation: integer; Len: integer; var from, to: integer; step: integer); +begin + // situation = 0 - + // situation = 1 - from + // situation = 2 - to + // situation = 3 - from to + if step = 0 then + raise new ArgumentException(GetTranslation(PARAMETER_STEP_MUST_BE_NOT_EQUAL_0)); + + {if (situation=0) or (situation=2) then + if (from < 0) or (from > Len - 1) then + raise new ArgumentException(GetTranslation(PARAMETER_FROM_OUT_OF_RANGE)); + + if (situation=0) or (situation=1) then + if (to < -1) or (to > Len) then + raise new ArgumentException(GetTranslation(PARAMETER_TO_OUT_OF_RANGE));} + + CorrectFromTo(situation, Len, from, to, step); +end; + +///-- +function SystemSliceListImpl(Self: List; situation: integer; from, to: integer; step: integer := 1): List; +begin + var count := CheckAndCorrectFromToAndCalcCountForSystemSlice(situation, Self.Count, from, to, step); + + Result := CreateSliceFromListInternal(Self, from, step, count); +end; + +///-- +function SystemSlice(Self: List; situation: integer; from, to: integer): List; extensionmethod; +begin + Result := SystemSliceListImpl(Self, situation, from, to, 1); +end; + +///-- +function SystemSlice(Self: List; situation: integer; from, to, step: integer): List; extensionmethod; +begin + Result := SystemSliceListImpl(Self, situation, from, to, step); +end; + +///-- +function SystemSliceListImplQuestion(Self: List; situation: integer; from, to: integer; step: integer := 1): List; +begin + var count := CorrectFromToAndCalcCountForSystemSliceQuestion(situation, Self.Count, from, to, step); + + Result := CreateSliceFromListInternal(Self, from, step, count); +end; + +///-- +function SystemSliceQuestion(Self: List; situation: integer; from, to: integer): List; extensionmethod; +begin + Result := SystemSliceListImplQuestion(Self, situation, from, to, 1); +end; + +///-- +function SystemSliceQuestion(Self: List; situation: integer; from, to, step: integer): List; extensionmethod; +begin + Result := SystemSliceListImplQuestion(Self, situation, from, to, step); +end; + +// ----------------------------------------------------- +//>> array [,] of T # Extension methods for array [,] of T +// ----------------------------------------------------- +/// +function RowCount(Self: array [,] of T): integer; extensionmethod; +begin + Result := Self.GetLength(0); +end; + +/// +function ColCount(Self: array [,] of T): integer; extensionmethod; +begin + Result := Self.GetLength(1); +end; + +/// , w - +function Print(Self: array [,] of T; w: integer := 4): array [,] of T; extensionmethod; +begin + for var i := 0 to Self.RowCount - 1 do + begin + for var j := 0 to Self.ColCount - 1 do + begin + var elem := Self[i, j]; + var s := StructuredObjectToString(elem); + Write(s.PadLeft(w)); + end; + Writeln; + end; + Result := Self; +end; + +/// :w:f +function Print(Self: array [,] of real; w: integer := 7; f: integer := 2): array [,] of real; extensionmethod; +begin + for var i := 0 to Self.RowCount - 1 do + begin + for var j := 0 to Self.ColCount - 1 do + Write(FormatValue(Self[i, j], w, f)); + Writeln; + end; + Result := Self; +end; + +/// , w - +function Println(Self: array [,] of T; w: integer := 4): array [,] of T; extensionmethod; +begin + Self.Print(w); + Result := Self; +end; + +/// :w:f +function Println(Self: array [,] of real; w: integer := 7; f: integer := 2): array [,] of real; extensionmethod; +begin + Self.Print(w, f); + Result := Self; +end; + +/// k- +function Row(Self: array [,] of T; k: integer): array of T; extensionmethod; +begin + var n := Self.ColCount; + var res := new T[n]; + for var j := 0 to n - 1 do + res[j] := Self[k, j]; + Result := res; +end; + +/// k- +function Col(Self: array [,] of T; k: integer): array of T; extensionmethod; +begin + var m := Self.RowCount; + var res := new T[m]; + for var i := 0 to m - 1 do + res[i] := Self[i, k]; + Result := res; +end; + +/// k- +function RowSeq(Self: array [,] of T; k: integer): sequence of T; extensionmethod; +begin + for var j := 0 to Self.ColCount - 1 do + yield Self[k, j]; +end; + +/// k- +function ColSeq(Self: array [,] of T; k: integer): sequence of T; extensionmethod; +begin + for var i := 0 to Self.RowCount - 1 do + yield Self[i, k]; +end; + +/// +function Rows(Self: array [,] of T): sequence of sequence of T; extensionmethod; +begin + for var i := 0 to Self.RowCount - 1 do + yield Self.RowSeq(i); +end; + +/// +function Cols(Self: array [,] of T): sequence of sequence of T; extensionmethod; +begin + for var j := 0 to Self.ColCount - 1 do + yield Self.ColSeq(j); +end; + +/// k1 k2 +procedure SwapRows(Self: array [,] of T; k1, k2: integer); extensionmethod; +begin + for var j := 0 to Self.ColCount - 1 do + Swap(Self[k1, j], Self[k2, j]) +end; + +/// k1 k2 +procedure SwapCols(Self: array [,] of T; k1, k2: integer); extensionmethod; +begin + for var i := 0 to Self.RowCount - 1 do + Swap(Self[i, k1], Self[i, k2]) +end; + +/// k +procedure SetRow(Self: array [,] of T; k: integer; a: array of T); extensionmethod; +begin + if a.Length <> Self.ColCount then + raise new System.ArgumentException(GetTranslation(ARR_LENGTH_MUST_BE_MATCH_TO_MATR_SIZE)); + for var j := 0 to Self.ColCount - 1 do + Self[k, j] := a[j] +end; + +/// k +procedure SetRow(Self: array [,] of T; k: integer; a: sequence of T); extensionmethod := Self.SetRow(k,a.ToArray); + +/// k +procedure SetCol(Self: array [,] of T; k: integer; a: array of T); extensionmethod; +begin + if a.Length <> Self.RowCount then + raise new System.ArgumentException(GetTranslation(ARR_LENGTH_MUST_BE_MATCH_TO_MATR_SIZE)); + for var i := 0 to Self.RowCount - 1 do + Self[i, k] := a[i] +end; + +/// k +procedure SetCol(Self: array [,] of T; k: integer; a: sequence of T); extensionmethod := Self.SetCol(k,a.ToArray); + +/// (a[i,j],i,j) +function ElementsWithIndexes(Self: array [,] of T): sequence of (T, integer, integer); extensionmethod; +begin + for var i := 0 to Self.RowCount - 1 do + for var j := 0 to Self.ColCount - 1 do + yield (Self[i, j], i, j) +end; + +/// +function ElementsByRow(Self: array [,] of T): sequence of T; extensionmethod; +begin + for var i := 0 to Self.RowCount - 1 do + for var j := 0 to Self.ColCount - 1 do + yield Self[i, j] +end; + +/// +function ElementsByCol(Self: array [,] of T): sequence of T; extensionmethod; +begin + for var j := 0 to Self.ColCount - 1 do + for var i := 0 to Self.RowCount - 1 do + yield Self[i, j] +end; + +/// +function ConvertAll(Self: array [,] of T; converter: T->T1): array [,] of T1; extensionmethod; +begin + Result := new T1[Self.RowCount, Self.ColCount]; + for var i := 0 to Self.RowCount - 1 do + for var j := 0 to Self.ColCount - 1 do + Result[i, j] := converter(Self[i, j]); +end; + +/// +procedure Transform(Self: array [,] of T; f: T->T); extensionmethod; +begin + for var i := 0 to Self.RowCount - 1 do + for var j := 0 to Self.ColCount - 1 do + Self[i, j] := f(Self[i, j]); +end; + +/// , +procedure Fill(Self: array [,] of T; f: (integer,integer) ->T); extensionmethod; +begin + for var i := 0 to Self.RowCount - 1 do + for var j := 0 to Self.ColCount - 1 do + Self[i, j] := f(i, j); +end; + +// ----------------------------------------------------- +//>> YYY - ! # YYY +// ----------------------------------------------------- + +function Matr(m,n: integer; params data: array of T): array [,] of T; +begin + if data.Length<>m*n then + raise new System.ArgumentException(GetTranslation(INITELEM_COUNT_MUST_BE_EQUAL_TO_MATRIX_ELEMS_COUNT)); + + Result := new T[m, n]; + var k := 0; + for var i:=0 to Result.RowCount-1 do + for var j:=0 to Result.ColCount-1 do + begin + Result[i,j] := data[k]; + k += 1; + end; +end; + +// - RowCount ColCount +function MatrRandom(m: integer; n: integer; a, b: integer): array [,] of integer; +begin + Result := new integer[m, n]; + for var i := 0 to Result.RowCount - 1 do + for var j := 0 to Result.ColCount - 1 do + Result[i, j] := Random(a, b); +end; + +function MatrRandomInteger(m: integer; n: integer; a, b: integer): array [,] of integer; +begin + Result := new integer[m, n]; + for var i := 0 to Result.RowCount - 1 do + for var j := 0 to Result.ColCount - 1 do + Result[i, j] := Random(a, b); +end; + +function MatrRandomReal(m: integer; n: integer; a, b: real): array [,] of real; +begin + Result := new real[m, n]; + for var i := 0 to Result.RowCount - 1 do + for var j := 0 to Result.ColCount - 1 do + Result[i, j] := Random() * (b - a) + a; +end; + +function MatrFill(m, n: integer; x: T): array [,] of T; +begin + Result := new T[m, n]; + for var i := 0 to Result.RowCount - 1 do + for var j := 0 to Result.ColCount - 1 do + Result[i, j] := x; +end; + +function MatrGen(m, n: integer; gen: (integer,integer)->T): array [,] of T; +begin + Result := new T[m, n]; + for var i := 0 to Result.RowCount - 1 do + for var j := 0 to Result.ColCount - 1 do + Result[i, j] := gen(i, j); +end; + +function Transpose(a: array [,] of T): array [,] of T; +begin + var m := a.RowCount; + var n := a.ColCount; + Result := new T[n, m]; + for var i := 0 to Result.RowCount - 1 do + for var j := 0 to Result.ColCount - 1 do + Result[i, j] := a[j, i] +end; + +function ReadMatrInteger(m, n: integer): array [,] of integer; +begin + Result := new integer[m, n]; + for var i := 0 to m - 1 do + for var j := 0 to n - 1 do + Result[i, j] := ReadInteger; +end; + +function ReadMatrReal(m, n: integer): array [,] of real; +begin + Result := new real[m, n]; + for var i := 0 to m - 1 do + for var j := 0 to n - 1 do + Result[i, j] := ReadReal; +end; + +// ----------------------------------------------------- +//>> array of T # Extension methods for array of T +// ----------------------------------------------------- + +// 2016: Shuffle, AdjacentFind, IndexMin, IndexMax, Replace, Transform +// - : BinarySearch, ConvertAll, Find, FindIndex, FindAll, +// FindLast, FindLastIndex, IndexOf, Contains, LastIndexOf, Reverse, Sort + +/// +function Shuffle(Self: array of T): array of T; extensionmethod; +begin + var n := Self.Length; + for var i := 0 to n - 1 do + Swap(Self[i], Self[Random(n)]); + Result := Self; +end; + +{/// . , -1 +function AdjacentFind(Self: array of T; start: integer := 0): integer; extensionmethod; +begin + Result := -1; + for var i:=start to Self.Length-2 do + if Self[i]=Self[i+1] then + begin + Result := i; + exit; + end; +end; + +/// , eq, . , -1 +function AdjacentFind(Self: array of T; eq: (T,T)->boolean; start: integer := 0): integer; extensionmethod; +begin + Result := -1; + for var i:=start to Self.Length-2 do + if eq(Self[i],Self[i+1]) then + begin + Result := i; + exit; + end; +end;} + +/// +function Min(Self: array of T): T; extensionmethod;where T: System.IComparable; +begin + Result := Self[0]; + for var i := 1 to Self.Length - 1 do + if Self[i].CompareTo(Result) < 0 then + Result := Self[i]; +end; + +/// +function Max(Self: array of T): T; extensionmethod;where T: System.IComparable; +begin + Result := Self[0]; + for var i := 1 to Self.Length - 1 do + if Self[i].CompareTo(Result) > 0 then + Result := Self[i]; +end; + +/// +function Min(Self: array of integer): integer; extensionmethod; +begin + Result := Self[0]; + for var i := 1 to Self.Length - 1 do + if Self[i] < Result then + Result := Self[i]; +end; + +/// +function Min(Self: array of real): real; extensionmethod; +begin + Result := Self[0]; + for var i := 1 to Self.Length - 1 do + if Self[i] < Result then + Result := Self[i]; +end; + +/// +function Max(Self: array of integer): integer; extensionmethod; +begin + Result := Self[0]; + for var i := 1 to Self.Length - 1 do + if Self[i] > Result then + Result := Self[i]; +end; + +/// +function Max(Self: array of real): real; extensionmethod; +begin + Result := Self[0]; + for var i := 1 to Self.Length - 1 do + if Self[i] > Result then + Result := Self[i]; +end; + +{/// index +function IndexMin(Self: array of T; index: integer := 0): integer; extensionmethod; where T: System.IComparable; +begin + var min := Self[index]; + Result := index; + for var i:=index+1 to Self.Length-1 do + if Self[i].CompareTo(min)<0 then + begin + Result := i; + min := Self[i]; + end; +end; + +/// index +function IndexMax(self: array of T; index: integer := 0): integer; extensionmethod; where T: System.IComparable; +begin + var max := Self[index]; + Result := index; + for var i:=index+1 to Self.Length-1 do + if Self[i].CompareTo(max)>0 then + begin + Result := i; + max := Self[i]; + end; +end; + +/// +function LastIndexMin(Self: array of T): integer; extensionmethod; where T: System.IComparable; +begin + var min := Self[Self.Length-1]; + Result := Self.Length-1; + for var i:=Self.Length-2 downto 0 do + if Self[i].CompareTo(min)<0 then + begin + Result := i; + min := Self[i]; + end; +end; + +/// [0,index] +function LastIndexMin(Self: array of T; index: integer): integer; extensionmethod; where T: System.IComparable; +begin + var min := Self[index]; + Result := index; + for var i:=index-1 downto 0 do + if Self[i].CompareTo(min)<0 then + begin + Result := i; + min := Self[i]; + end; +end; + +/// +function LastIndexMax(Self: array of T): integer; extensionmethod; where T: System.IComparable; +begin + var max := Self[Self.Length-1]; + Result := Self.Length-1; + for var i:=Self.Length-2 downto 0 do + if Self[i].CompareTo(max)>0 then + begin + Result := i; + max := Self[i]; + end; +end; + +/// [0,index] +function LastIndexMax(Self: array of T; index: integer): integer; extensionmethod; where T: System.IComparable; +begin + var max := Self[index]; + Result := index; + for var i:=index-1 downto 0 do + if Self[i].CompareTo(max)>0 then + begin + Result := i; + max := Self[i]; + end; +end; + +/// +procedure Replace(Self: array of T; oldValue,newValue: T); extensionmethod; +begin + for var i:=0 to Self.Length-1 do + if Self[i] = oldValue then + Self[i] := newValue; +end; + +/// +procedure Transform(self: array of T; f: T -> T); extensionmethod; +begin + for var i:=0 to Self.Length-1 do + Self[i] := f(Self[i]); +end; + +/// , +procedure Fill(Self: array of T; f: integer -> T); extensionmethod; +begin + for var i:=0 to Self.Length-1 do + Self[i] := f(i); +end;} + +/// +function BinarySearch(self: array of T; x: T): integer; extensionmethod; +begin + Result := System.Array.BinarySearch(self, x); +end; + +/// +function ConvertAll(self: array of T; converter: T->T1): array of T1; extensionmethod; +begin + Result := System.Array.ConvertAll(self, t -> converter(t)); +end; + +/// , . , +function Find(self: array of T; p: T->boolean): T; extensionmethod; +begin + Result := System.Array.Find(self, p); +end; + +/// , . , -1 +function FindIndex(self: array of T; p: T->boolean): integer; extensionmethod; +begin + Result := System.Array.FindIndex(self, p); +end; + +/// , , start. , -1 +function FindIndex(self: array of T; start: integer; p: T->boolean): integer; extensionmethod; +begin + Result := System.Array.FindIndex(self, start, p); +end; + +/// , +function FindAll(self: array of T; p: T->boolean): array of T; extensionmethod; +begin + Result := System.Array.FindAll(self, p); +end; + +/// , . , +function FindLast(self: array of T; p: T->boolean): T; extensionmethod; +begin + Result := System.Array.FindLast(self, p); +end; + +/// , . , +function FindLastIndex(self: array of T; p: T->boolean): integer; extensionmethod; +begin + Result := System.Array.FindLastIndex(self, p); +end; + +/// , , start. , +function FindLastIndex(self: array of T; start: integer; p: T->boolean): integer; extensionmethod; +begin + Result := System.Array.FindLastIndex(self, start, p); +end; + +/// -1 +function IndexOf(self: array of T; x: T): integer; extensionmethod; +begin + Result := System.Array.IndexOf(self, x); +end; + +/// start -1 +function IndexOf(self: array of T; x: T; start: integer): integer; extensionmethod; +begin + Result := System.Array.IndexOf(self, x, start); +end; + +/// -1 +function LastIndexOf(self: array of T; x: T): integer; extensionmethod; +begin + Result := System.Array.LastIndexOf(self, x); +end; + +/// start -1 +function LastIndexOf(self: array of T; x: T; start: integer): integer; extensionmethod; +begin + Result := System.Array.LastIndexOf(self, x, start); +end; + +/// +procedure Sort(self: array of T); extensionmethod; +begin + System.Array.Sort(self); +end; + +/// , cmp +procedure Sort(self: array of T; cmp: (T,T) ->integer); extensionmethod; +begin + System.Array.Sort(self, cmp); +end; + +/// +function High(self: System.Array); extensionmethod := High(Self); + +/// +function Low(self: System.Array); extensionmethod := Low(Self); + +/// +function Indexes(Self: array of T): sequence of integer; extensionmethod := Range(0, Self.Length - 1); + +/// , +function IndexesOf(Self: array of T; cond: T->boolean): sequence of integer; extensionmethod; +begin + for var i := 0 to Self.High do + if cond(Self[i]) then + yield i; +end; + +/// , +function IndexesOf(Self: array of T; cond: (T,integer) ->boolean): sequence of integer; extensionmethod; +begin + for var i := 0 to Self.High do + if cond(Self[i], i) then + yield i; +end; + +///-- +function CreateSliceFromArrayInternal(Self: array of T; from, step, count: integer): array of T; +begin + Result := new T[count]; + + var f := from; + for var i := 0 to count - 1 do + begin + Result[i] := Self[f]; + f += step; + end; +end; + +///-- +function SliceArrayImpl(Self: array of T; from, step, count: integer): array of T; +begin + {if step = 0 then + raise new ArgumentException(GetTranslation(PARAMETER_STEP_MUST_BE_NOT_EQUAL_0)); + + if (from < 0) or (from > Self.Length - 1) then + raise new ArgumentException(GetTranslation(PARAMETER_FROM_OUT_OF_RANGE)); + + var cnt := step > 0 ? Self.Length - from : from + 1; + var cntstep := (cnt-1) div abs(step) + 1; + if count > cntstep then + count := cntstep;} + + CorrectCountForSlice(Self.Length, from, step, count); + + Result := CreateSliceFromArrayInternal(Self, from, step, count) +end; + +/// from step +function Slice(Self: array of T; from, step: integer): array of T; extensionmethod; +begin + Result := SliceArrayImpl(Self, from, step, integer.MaxValue); +end; + +/// from step count +function Slice(Self: array of T; from, step, count: integer): array of T; extensionmethod; +begin + Result := SliceArrayImpl(Self, from, step, count); +end; + +///-- +function SystemSliceArrayImpl(Self: array of T; situation: integer; from, to: integer; step: integer := 1): array of T; +begin + var count := CheckAndCorrectFromToAndCalcCountForSystemSlice(situation, Self.Length, from, to, step); + + Result := CreateSliceFromArrayInternal(Self, from, step, count) +end; + +///-- +function SystemSlice(Self: array of T; situation: integer; from, to: integer): array of T; extensionmethod; +begin + Result := SystemSliceArrayImpl(Self, situation, from, to, 1); +end; + +///-- +function SystemSlice(Self: array of T; situation: integer; from, to, step: integer): array of T; extensionmethod; +begin + Result := SystemSliceArrayImpl(Self, situation, from, to, step); +end; + +///-- +function SystemSliceArrayImplQuestion(Self: array of T; situation: integer; from, to: integer; step: integer := 1): array of T; +begin + var count := CorrectFromToAndCalcCountForSystemSliceQuestion(situation, Self.Length, from, to, step); + + Result := CreateSliceFromArrayInternal(Self, from, step, count); +end; + +///-- +function SystemSliceQuestion(Self: array of T; situation: integer; from, to: integer): array of T; extensionmethod; +begin + Result := SystemSliceArrayImplQuestion(Self, situation, from, to, 1); +end; + +///-- +function SystemSliceQuestion(Self: array of T; situation: integer; from, to, step: integer): array of T; extensionmethod; +begin + Result := SystemSliceArrayImplQuestion(Self, situation, from, to, step); +end; + +// ----------------------------------------------------- +//>> integer # Extension methods for integer +// ----------------------------------------------------- +/// +function Sqrt(Self: integer): real; extensionmethod; +begin + Result := Sqrt(Self); +end; + +/// +function Sqr(Self: integer): integer; extensionmethod; +begin + Result := Sqr(Self); +end; + +/// True +function Between(Self: integer; a, b: integer): boolean; extensionmethod; +begin + Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a); +end; + +/// True +function InRange(Self: integer; a,b: integer): boolean; extensionmethod; +begin + Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a); +end; + + +// 2016: IsEven, IsOdd + +/// , +function IsEven(Self: integer): boolean; extensionmethod; +begin + Result := Self mod 2 = 0; +end; + +/// , +function IsOdd(Self: integer): boolean; extensionmethod; +begin + Result := Self mod 2 <> 0; +end; + +/// 1 +function Range(Self: integer): sequence of integer; extensionmethod; +begin + Result := Range(1, Self); +end; + +// 2016: To, Downto, Times + +/// n +function To(Self: integer; n: integer): sequence of integer; extensionmethod; +begin + Result := Range(Self, n); +end; + +/// n +function Downto(Self: integer; n: integer): sequence of integer; extensionmethod; +begin + Result := Range(Self, n, -1); +end; + +/// 0,1,...n-1 +function Times(Self: integer): sequence of integer; extensionmethod; +begin + Result := Range(0, Self - 1); +end; + +// ----------------------------------------------------- +//>> BigInteger # Extension methods for BigInteger +// ----------------------------------------------------- +/// +function Sqrt(Self: BigInteger): real; extensionmethod; +begin + Result := Sqrt(real(Self)); +end; + +// ----------------------------------------------------- +//>> real # Extension methods for real +// ----------------------------------------------------- +/// True +function Between(Self: real; a, b: real): boolean; extensionmethod; +begin + Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a); +end; + +/// True +function InRange(Self: real; a,b: real): boolean; extensionmethod; +begin + Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a); +end; + +/// +function Sqrt(Self: real): real; extensionmethod; +begin + Result := Sqrt(Self); +end; + +/// +function Sqr(Self: real): real; extensionmethod; +begin + Result := Sqr(Self); +end; + +/// , +function Round(Self: real): integer; extensionmethod; +begin + Result := Round(Self); +end; + +/// x, digits +function Round(Self: real; digits: integer): real; extensionmethod; +begin + Result := Round(Self,digits); +end; + +/// , +function RoundBigInteger(Self: real): BigInteger; extensionmethod; +begin + Result := RoundBigInteger(Self); +end; + +/// +function Trunc(Self: real): integer; extensionmethod; +begin + Result := Trunc(Self); +end; + +/// +function TruncBigInteger(Self: real): BigInteger; extensionmethod; +begin + Result := TruncBigInteger(Self); +end; + +/// , frac +function ToString(Self: real; frac: integer): string; extensionmethod; +begin + if frac < 0 then + raise new System.ArgumentOutOfRangeException('frac', 'frac<0'); + if frac >= 100 then + raise new System.ArgumentOutOfRangeException('frac', 'frac>=100'); + Result := Format('{0:f' + frac + '}', Self) +end; + + +//------------------------------------------------------------------------------ +//>> char # Extension methods for char +//------------------------------------------------------------------------------ +/// True +function Between(Self: char; a, b: char): boolean; extensionmethod; +begin + Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a); +end; + +/// True +function InRange(Self: char; a,b: char): boolean; extensionmethod; +begin + Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a); +end; + +/// +function Pred(Self: char); extensionmethod := PABCSystem.Pred(Self); + +/// +function Succ(Self: char); extensionmethod := PABCSystem.Succ(Self); + +/// Unicode +function Code(Self: char): integer; extensionmethod := word(Self); + +/// +function IsDigit(Self: char); extensionmethod := char.IsDigit(Self); + +/// +function IsLetter(Self: char): boolean; extensionmethod; +begin + Result := char.IsLetter(Self); +end; + +/// +function IsLower(Self: char): boolean; extensionmethod; +begin + Result := char.IsLower(Self); +end; + +/// +function IsUpper(Self: char): boolean; extensionmethod; +begin + Result := char.IsUpper(Self); +end; + +/// +function ToDigit(Self: char): integer; extensionmethod; +begin + Result := OrdUnicode(Self) - OrdUnicode('0'); + if (Result < 0) or (Result >= 10) then + raise new System.FormatException('not a Digit'); +end; + +/// +function ToLower(Self: char): char; extensionmethod; +begin + Result := char.ToLower(Self); +end; + +/// +function ToUpper(Self: char): char; extensionmethod; +begin + Result := char.ToUpper(Self); +end; + +//------------------------------------------------------------------------------ +//>> string # Extension methods for string +//------------------------------------------------------------------------------ +/// True +function Between(Self: string; a, b: string): boolean; extensionmethod; +begin + Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a); +end; + +/// True +function InRange(Self: string; a,b: string): boolean; extensionmethod; +begin + Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a); +end; + +/// from from +function ReadInteger(Self: string; var from: integer): integer; extensionmethod; +begin + Result := ReadIntegerFromString(Self, from); +end; + +/// from from +function ReadReal(Self: string; var from: integer): real; extensionmethod; +begin + Result := ReadRealFromString(Self, from); +end; + +/// from from +function ReadWord(Self: string; var from: integer): string; extensionmethod; +begin + Result := ReadwordFromString(Self, from); +end; + +/// +function ToInteger(Self: string): integer; extensionmethod; +begin + Result := integer.Parse(Self); +end; + +/// BigInteger +function ToBigInteger(Self: string): BigInteger; extensionmethod; +begin + Result := BigInteger.Parse(Self); +end; + +/// +function ToReal(Self: string): real; extensionmethod; +begin + Result := real.Parse(Self, nfi); +end; + +/// +function ToWords(Self: string; params delim: array of char): array of string; extensionmethod; +begin + Result := Self.Split(delim, System.StringSplitOptions.RemoveEmptyEntries); +end; + +/// +function ToIntegers(Self: string): array of integer; extensionmethod; +begin + Result := Self.ToWords().Select(s -> StrToInt(s)).ToArray(); +end; + +/// +function ToReals(Self: string): array of real; extensionmethod; +begin + Result := Self.ToWords().Select(s -> StrToFloat(s)).ToArray(); +end; + +/// +function Inverse(Self: string): string; extensionmethod; +begin + var sb := new System.Text.StringBuilder(Self.Length); + for var i := Self.Length downto 1 do + sb.Append(Self[i]); + Result := sb.ToString; +end; + +// 2016: Matches, MatchValue, MatchValues, IsMatch, RegexReplace, Remove, Right, Left + +/// +function RegexReplace(Self: string; reg, repl: string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +begin + Result := Regex.Replace(Self, reg, repl, options) +end; + +/// +function RegexReplace(Self: string; reg: string; repl: Match->string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +begin + Result := Regex.Replace(Self, reg, repl, options) +end; + +/// Match +function Matches(Self: string; reg: string; options: RegexOptions := RegexOptions.None): sequence of Match; extensionmethod; +begin + Result := (new Regex(reg, options)).Matches(Self).Cast(); +end; + +/// +function MatchValue(Self: string; reg: string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +begin + Result := (new Regex(reg, options)).Match(Self).Value; +end; + +/// +function MatchValues(Self: string; reg: string; options: RegexOptions := RegexOptions.None): sequence of string; extensionmethod; +begin + Result := Self.Matches(reg, options).Select(m -> m.Value); +end; + +/// +function IsMatch(Self: string; reg: string; options: RegexOptions := RegexOptions.None): boolean; extensionmethod := Regex.IsMatch(Self, reg, options); + +/// +function Remove(Self: string; params targets: array of string): string; extensionmethod; +begin + var builder := new StringBuilder(Self); + + for var i := 0 to targets.Length - 1 do + builder.Replace(targets[i], String.Empty); + + Result := builder.ToString(); +end; + +/// , length +function Right(Self: string; length: integer): string; extensionmethod; +begin + length := Max(length, 0); + + if Self.Length > length then + Result := Self.Substring(Self.Length - length, length) + else Result := Self; +end; + +/// , length +function Left(Self: string; length: integer): string; extensionmethod; +begin + length := Max(length, 0); + + if Self.Length > length then + Result := Self.Substring(0, length) + else Result := Self; +end; + +///-- +function CreateSliceFromStringInternal(Self: string; from, step, count: integer): string; +begin + var res := new StringBuilder(count); + + loop count do + begin + res.Append(Self[from]); + from += step; + end; + Result := res.ToString; +end; + +///-- +function SliceStringImpl(Self: string; from, step, count: integer): string; +begin + {if step = 0 then + raise new ArgumentException(GetTranslation(PARAMETER_STEP_MUST_BE_NOT_EQUAL_0)); + + if (from < 0) or (from > Self.Length - 1) then + raise new ArgumentException(GetTranslation(PARAMETER_FROM_OUT_OF_RANGE)); + + var cnt := step > 0 ? Self.Length - from : from + 1; + var cntstep := (cnt-1) div abs(step) + 1; + if count > cntstep then + count := cntstep;} + + CorrectCountForSlice(Self.Length, from, step, count); + + Result := CreateSliceFromStringInternal(Self, from + 1, step, count); +end; + +/// from step +function Slice(Self: string; from, step: integer): string; extensionmethod; +begin + Result := SliceStringImpl(Self, from, step, integer.MaxValue); +end; + +/// from step count +function Slice(Self: string; from, step, count: integer): string; extensionmethod; +begin + Result := SliceStringImpl(Self, from, step, count); +end; + +///-- +function SystemSliceStringImpl(Self: string; situation: integer; from, to: integer; step: integer := 1): string; +begin + var fromv := from - 1; + var tov := to - 1; + var count := CheckAndCorrectFromToAndCalcCountForSystemSlice(situation, Self.Length, fromv, tov, step); + + Result := CreateSliceFromStringInternal(Self, fromv + 1, step, count) +end; + +///-- +function SystemSlice(Self: string; situation: integer; from, to: integer): string; extensionmethod; +begin + Result := SystemSliceStringImpl(Self, situation, from, to, 1); +end; + +///-- +function SystemSlice(Self: string; situation: integer; from, to, step: integer): string; extensionmethod; +begin + Result := SystemSliceStringImpl(Self, situation, from, to, step); +end; + +///-- +function SystemSliceStringImplQuestion(Self: string; situation: integer; from, to: integer; step: integer := 1): string; +begin + var fromv := from - 1; + var tov := to - 1; + + var count := CorrectFromToAndCalcCountForSystemSliceQuestion(situation, Self.Length, fromv, tov, step); + + Result := CreateSliceFromStringInternal(Self, fromv + 1, step, count); +end; + +///-- +function SystemSliceQuestion(Self: string; situation: integer; from, to: integer): string; extensionmethod; +begin + Result := SystemSliceStringImplQuestion(Self, situation, from, to, 1); +end; + +///-- +function SystemSliceQuestion(Self: string; situation: integer; from, to, step: integer): string; extensionmethod; +begin + Result := SystemSliceStringImplQuestion(Self, situation, from, to, step); +end; +//-------------------------------------------- +//>> Func # Extension methods for Func +//-------------------------------------------- +/// +function Compose(Self: T2->TResult; composer: T1->T2): T1->TResult; extensionmethod; +begin + if composer = nil then + raise new System.ArgumentNullException('composer'); + var Slf := Self; + Result := x -> Slf(composer(x)); +end; + +//------------------------------------------------------------------------------ +//>> Complex # Extension methods for Complex +//------------------------------------------------------------------------------ +/// +function Conjugate(Self: Complex): Complex; extensionmethod; +begin + Result := Complex.Conjugate(Self); +end; + +// ----------------------------------------------------------------------------- +//>> IDictionary # Extension methods for IDictionary +// ----------------------------------------------------------------------------- +/// , , , +function Get(Self: IDictionary; K: Key): Value; extensionmethod; +begin + var b := Self.TryGetValue(K, Result); + if not b then + Result := default(Value); +end; + + + +// ----------------------------------------------------- +//>> # Subroutines for typed files +// ----------------------------------------------------- + +/// +function OpenBinary(fname: string): file of T; +begin + PABCSystem.Reset(Result, fname); +end; + +/// +function CreateBinary(fname: string): file of T; +begin + PABCSystem.Rewrite(Result, fname); +end; + +/// +function OpenFile(fname: string): file of T; +begin + PABCSystem.Reset(Result, fname); +end; + +/// +function CreateFile(fname: string): file of T; +begin + PABCSystem.Rewrite(Result, fname); +end; + +/// +function OpenFileInteger(fname: string): file of integer; +begin + Result := OpenFile(fname); +end; + +/// +function OpenFileReal(fname: string): file of real; +begin + Result := OpenFile(fname); +end; + +/// +function CreateFileInteger(fname: string): file of integer; +begin + Result := CreateFile(fname); +end; + +/// +function CreateFileReal(fname: string): file of real; +begin + Result := CreateFile(fname); +end; + +/// , +procedure WriteElements(fname: string; ss: sequence of T); +begin + var f := CreateBinary(fname); + foreach var x in ss do + f.Write(x); + f.Close +end; + +// ----------------------------------------------------- +//>> # Extension methods for typed files +// ----------------------------------------------------- + +/// n +function Seek(Self: file of T; n: int64): file of T; extensionmethod; +begin + PABCSystem.Seek(Self, n); + Result := Self; +end; + +/// +function Read(Self: file of T): T; extensionmethod; +begin + PABCSystem.Read(Self, Result); +end; + +/// +function Read2(Self: file of T): (T,T); extensionmethod; +begin + var a,b: T; + PABCSystem.Read(Self, a); + PABCSystem.Read(Self, b); + Result := (a,b); +end; + +/// +function Read3(Self: file of T): (T,T,T); extensionmethod; +begin + var a,b,c: T; + PABCSystem.Read(Self, a); + PABCSystem.Read(Self, b); + PABCSystem.Read(Self, c); + Result := (a,b,c); +end; + +/// +function ReadElements(Self: file of T): sequence of T; extensionmethod; +begin + while not Self.Eof do + begin + var x := Self.Read; + yield x; + end; +end; + +/// , +function ReadElements(fname: string): sequence of T; +begin + var f := OpenBinary(fname); + while not f.Eof do + begin + var x := f.Read; + yield x; + end; + f.Close +end; + +/// +procedure Write(Self: file of T; params vals: array of T); extensionmethod; +begin + foreach var x in vals do + PABCSystem.Write(Self, x); +end; + diff --git a/PABCNetHelp/PABCSystemDocGen/PABC1.pas b/PABCNetHelp/PABCSystemDocGen/PABC1.pas new file mode 100644 index 000000000..09c5e97ab --- /dev/null +++ b/PABCNetHelp/PABCSystemDocGen/PABC1.pas @@ -0,0 +1,1547 @@ +//>> # Standard constants +/// shortint +MaxShortInt = shortint.MaxValue; +/// byte +MaxByte = byte.MaxValue; +/// smallint +MaxSmallInt = smallint.MaxValue; +/// word +MaxWord = word.MaxValue; +/// longword +MaxLongWord = longword.MaxValue; +/// int64 +MaxInt64 = int64.MaxValue; +/// uint64 +MaxUInt64 = uint64.MaxValue; +/// double +MaxDouble = real.MaxValue; +/// double +MinDouble = real.Epsilon; +/// real +MaxReal = real.MaxValue; +/// real +MinReal = real.Epsilon; +/// single +MaxSingle = single.MaxValue; +/// single +MinSingle = single.Epsilon; +/// integer +MaxInt = integer.MaxValue; +/// Pi +Pi = 3.141592653589793; +/// E +E = 2.718281828459045; +/// +NewLine = System.Environment.NewLine; +//>> # Standard types +/// +Object = System.Object; +/// +Exception = System.Exception; +/// double = real +double = System.Double; +/// longint = integer +longint = System.Int32; +/// cardinal = longword +cardinal = System.UInt32; +/// 128- +decimal = System.Decimal; +/// +BigInteger = System.Numerics.BigInteger; +/// +DateTime = System.DateTime; +/// +Complex = System.Numerics.Complex; +/// +Tuple = System.Tuple; +/// +List = System.Collections.Generic.List; +/// IComparer +Comparer = System.Collections.Generic.Comparer; +/// IComparer +IComparable = System.IComparable; +/// , - +HashSet = System.Collections.Generic.HashSet; +/// , +SortedSet = System.Collections.Generic.SortedSet; +/// ( -), - +Dictionary = System.Collections.Generic.Dictionary; +/// , +SortedDictionary = System.Collections.Generic.SortedDictionary; +/// ( -), +SortedList = System.Collections.Generic.SortedList; +/// - +KeyValuePair = System.Collections.Generic.KeyValuePair; +/// +LinkedList = System.Collections.Generic.LinkedList; +/// +LinkedListNode = System.Collections.Generic.LinkedListNode; +/// - , " - " +Queue = System.Collections.Generic.Queue; +/// - , " - " +Stack = System.Collections.Generic.Stack; +/// +ICollection = System.Collections.Generic.ICollection; +/// +IComparer = System.Collections.Generic.IComparer; +/// - +IDictionary = System.Collections.Generic.IDictionary; +/// , +IEnumerable = System.Collections.Generic.IEnumerable; +/// +IEnumerator = System.Collections.Generic.IEnumerator; +/// +IEqualityComparer = System.Collections.Generic.IEqualityComparer; +/// +IList = System.Collections.Generic.IList; +/// +ISet = System.Collections.Generic.ISet; +/// +StringBuilder = System.Text.StringBuilder; +/// +Encoding = System.Text.Encoding; +/// +Action0 = System.Action; +/// +Action = System.Action; +/// +Action2 = System.Action; +/// +Action3 = System.Action; +/// +Func0 = System.Func; +/// +Func = System.Func; +/// +Func2 = System.Func; +/// +Func3 = System.Func; +/// , +IntFunc = Func; +/// , +RealFunc = Func; +/// , +StringFunc = Func; +/// , boolean +Predicate = System.Predicate; +/// , boolean +Predicate2 = function(x1: T1; x2: T2): boolean; +/// , boolean +Predicate3 = function(x1: T1; x2: T2; x3: T3): boolean; +/// +Regex = System.Text.RegularExpressions.Regex; +/// +Match = System.Text.RegularExpressions.Match; +/// , Regex.Replace +MatchEvaluator = System.Text.RegularExpressions.MatchEvaluator; +/// +MatchCollection = System.Text.RegularExpressions.MatchCollection; +/// +RegexOptions = System.Text.RegularExpressions.RegexOptions; +/// Regex.Match +RegexGroup = System.Text.RegularExpressions.Group; +/// Regex.Match +RegexGroupCollection = System.Text.RegularExpressions.GroupCollection; +/// 255 +ShortString = string[255]; +//>> # Read subroutines +///- procedure Read(a,b,...); +/// a,b,... +procedure Read; +///- procedure Readln(a,b,...); +/// a,b,... +procedure Readln; +/// x . False +function TryRead(var x: integer): boolean; +/// integer, +function ReadInteger: integer; +/// real, +function ReadReal: real; +/// char, +function ReadChar: char; +/// string, +function ReadString: string; +/// boolean, +function ReadBoolean: boolean; +/// integer, , +function ReadlnInteger: integer; +/// real, , +function ReadlnReal: real; +/// char, , +function ReadlnChar: char; +/// string, , +function ReadlnString: string; +/// boolean, , +function ReadlnBoolean: boolean; +/// integer, +function ReadInteger2: (integer, integer); +/// real, +function ReadReal2: (real, real); +/// char, +function ReadChar2: (char, char); +/// string, +function ReadString2: (string, string); +/// integer, , +function ReadlnInteger2: (integer, integer); +/// real, , +function ReadlnReal2: (real, real); +/// char, , +function ReadlnChar2: (char, char); +/// string, , +function ReadlnString2: (string, string); +/// integer, +function ReadInteger3: (integer, integer, integer); +/// real, +function ReadReal3: (real, real, real); +/// char, +function ReadChar3: (char, char, char); +/// string, +function ReadString3: (string, string, string); +/// integer, , +function ReadlnInteger3: (integer, integer, integer); +/// real, , +function ReadlnReal3: (real, real, real); +/// char, , +function ReadlnChar3: (char, char, char); +/// string, , +function ReadlnString3: (string, string, string); +/// integer, +function ReadInteger2(prompt: string): (integer, integer); +/// real, +function ReadReal2(prompt: string): (real, real); +/// char, +function ReadChar2(prompt: string): (char, char); +/// string, +function ReadString2(prompt: string): (string, string); +/// integer, , +function ReadlnInteger2(prompt: string): (integer, integer); +/// real, , +function ReadlnReal2(prompt: string): (real, real); +/// char, , +function ReadlnChar2(prompt: string): (char, char); +/// string, , +function ReadlnString2(prompt: string): (string, string); +/// integer, +function ReadInteger3(prompt: string): (integer, integer, integer); +/// real, +function ReadReal3(prompt: string): (real, real, real); +/// char, +function ReadChar3(prompt: string): (char, char, char); +/// string, +function ReadString3(prompt: string): (string, string, string); +/// integer, , +function ReadlnInteger3(prompt: string): (integer, integer, integer); +/// real, , +function ReadlnReal3(prompt: string): (real, real, real); +/// char, , +function ReadlnChar3(prompt: string): (char, char, char); +/// string, , +function ReadlnString3(prompt: string): (string, string, string); +/// integer, +function ReadInteger(prompt: string): integer; +/// real, +function ReadReal(prompt: string): real; +/// char, +function ReadChar(prompt: string): char; +/// string, +function ReadString(prompt: string): string; +/// boolean, +function ReadBoolean(prompt: string): boolean; +/// integer, , +/// +function ReadlnInteger(prompt: string): integer; +/// real, , +/// +function ReadlnReal(prompt: string): real; +/// char, , +/// +function ReadlnChar(prompt: string): char; +/// string, , +/// +function ReadlnString(prompt: string): string; +/// boolean, , +/// +function ReadlnBoolean(prompt: string): boolean; +///- procedure Read(f: ; a,b,...); +/// a,b,... f +procedure Read(f: Text); +///- procedure Readln(f: Text; a,b,...); +/// a,b,... f +procedure Readln(f: Text); +/// integer, f +function ReadInteger(f: Text): integer; +/// real, f +function ReadReal(f: Text): real; +/// char, f +function ReadChar(f: Text): char; +/// string, f +function ReadString(f: Text): string; +/// boolean, f +function ReadBoolean(f: Text): boolean; +/// integer, f, +/// +function ReadlnInteger(f: Text): integer; +/// real, f, +/// +function ReadlnReal(f: Text): real; +/// char, f, +/// +function ReadlnChar(f: Text): char; +/// string, f, +/// +function ReadlnString(f: Text): string; +/// boolean, f, +/// +function ReadlnBoolean(f: Text): boolean; +//>> # Write subroutines +///- procedure Write(a,b,...); +/// a,b,... +procedure Write; +///- procedure Writeln(a,b,...); +/// a,b,... +procedure Writeln; +///- procedure Write(f: ; a,b,...); +/// a,b,... f +procedure Write(f: Text); +///- procedure Writeln(f: Text; a,b,...); +/// a,b,... f +procedure Writeln(f: Text); +/// args formatstr +procedure WriteFormat(formatstr: string; params args: array of object); +/// args formatstr +procedure WritelnFormat(formatstr: string; params args: array of object); +/// args f formatstr +procedure WriteFormat(f: Text; formatstr: string; params args: array of object); +/// args f formatstr +/// +procedure WritelnFormat(f: Text; formatstr: string; params args: array of object); +///- procedure Print(a,b,...); +/// a,b,... , +procedure Print(s: string); +///- procedure Print(f: Text; a,b,...); +/// a,b,... f, +procedure Print(f: Text; params args: array of object); +///- procedure Println(a,b,...); +/// a,b,... , +procedure Println(params args: array of object); +///- procedure Println(f: Text; a,b,...); +/// a,b,... f, +procedure Println(f: Text; params args: array of object); +//>> # Common subroutines for files +///- procedure Assign(f: ; name: string); +/// +procedure Assign(f: AbstractBinaryFile; name: string); +///- procedure AssignFile(f: ; name: string); +/// +procedure AssignFile(f: AbstractBinaryFile; name: string); +///- procedure Close(f: ); +/// +procedure Close(f: AbstractBinaryFile); +///- procedure CloseFile(f: ); +/// +procedure CloseFile(f: AbstractBinaryFile); +///- function Eof(f: ): boolean; +/// True, +function Eof(f: AbstractBinaryFile): boolean; +///- procedure Erase(f: ); +/// , +procedure Erase(f: AbstractBinaryFile); +///- procedure Rename(f: ; newname: string); +/// , , newname. +procedure Rename(f: AbstractBinaryFile; newname: string); +//>> # Subroutines for text files +/// Windows +procedure Reset(f: Text); +/// +procedure Reset(f: Text; en: Encoding); +/// f name Windows +procedure Reset(f: Text; name: string); +/// f name +procedure Reset(f: Text; name: string; en: Encoding); +/// Windows. +/// - , - +procedure Rewrite(f: Text); +/// . +/// - , - +procedure Rewrite(f: Text; en: Encoding); +/// name f Windows. +/// - , - +procedure Rewrite(f: Text; name: string); +/// f name f . +/// - , - +procedure Rewrite(f: Text; name: string; en: Encoding); +/// Windows +procedure Append(f: Text); +/// +procedure Append(f: Text; en: Encoding); +/// f name Windows +procedure Append(f: Text; name: string); +/// f name +procedure Append(f: Text; name: string; en: Encoding); +/// fname, Windows +function OpenRead(fname: string): Text; +/// fname, +function OpenRead(fname: string; en: Encoding): Text; +/// fname, Windows +function OpenWrite(fname: string): Text; +/// fname, +function OpenWrite(fname: string; en: Encoding): Text; +/// fname, Windows +function OpenAppend(fname: string): Text; +/// fname, +function OpenAppend(fname: string; en: Encoding): Text; +/// True, +function Eoln(f: Text): boolean; +/// , True, +function SeekEof(f: Text): boolean; +/// , True, +function SeekEoln(f: Text): boolean; +/// +procedure Flush(f: Text); +/// , Windows . +function ReadLines(path: string): sequence of string; +/// , . +function ReadLines(path: string; en: Encoding): sequence of string; +/// , Windows , +function ReadAllLines(path: string): array of string; +/// , , +function ReadAllLines(path: string; en: Encoding): array of string; +/// , Windows , +function ReadAllText(path: string): string; +/// , , +function ReadAllText(path: string; en: Encoding): string; +/// , Windows, +procedure WriteLines(path: string; ss: sequence of string); +/// , , +procedure WriteLines(path: string; ss: sequence of string; en: Encoding); +/// , Windows, +procedure WriteAllLines(path: string; ss: array of string); +/// , , +procedure WriteAllLines(path: string; ss: array of string; en: Encoding); +/// , Windows, +procedure WriteAllText(path: string; s: string); +/// , , +procedure WriteAllText(path: string; s: string; en: Encoding); +//>> # Subroutines for binary files +///- procedure Reset(f: ); +/// . +/// - file of T, file +procedure Reset(f: AbstractBinaryFile); +///- procedure Reset(f: ; name: string); +/// f name . +/// - file of T, file +procedure Reset(f: AbstractBinaryFile; name: string); +///- procedure Rewrite(f: ); +/// , . , . +/// - file of T, file +procedure Rewrite(f: AbstractBinaryFile); +///- procedure Rewrite(f: ; name: string); +/// f name , . +/// - file of T, file +procedure Rewrite(f: AbstractBinaryFile; name: string); +///- procedure Truncate(f: ); +/// , . +/// - file of T, file +procedure Truncate(f: AbstractBinaryFile); +///- function FilePos(f: ): int64; +/// +function FilePos(f: TypedFile): int64; +///- function FileSize(f: ): int64; +/// +function FileSize(f: TypedFile): int64; +///- procedure Seek(f: ; n: int64); +/// +procedure Seek(f: TypedFile; n: int64); +//>> C # System subroutines +/// PascalABC.NET +function PascalABCVersion: string; +/// +function ParamCount: integer; +/// i- +function ParamStr(i: integer): string; +/// +function GetDir: string; +/// +procedure ChDir(s: string); +/// +procedure MkDir(s: string); +/// +procedure RmDir(s: string); +/// . True, +function CreateDir(s: string): boolean; +/// . , False +function DeleteFile(s: string): boolean; +/// +function GetCurrentDir: string; +/// . True, +function RemoveDir(s: string): boolean; +/// name, newname. True, +function RenameFile(name, newname: string): boolean; +/// . True, +function SetCurrentDir(s: string): boolean; +/// name newext +function ChangeFileNameExtension(name, newext: string): string; +/// True, name +function FileExists(name: string): boolean; +/// +procedure Assert(cond: boolean; sourceFile: string := ''; line: integer := 0); +/// +procedure Assert(cond: boolean; message: string; sourceFile: string := ''; line: integer := 0); +/// diskname +function DiskFree(diskname: string): int64; +/// diskname +function DiskSize(diskname: string): int64; +/// disk. disk=0 - , disk=1 - A: , disk=2 - B: .. +function DiskFree(disk: integer): int64; +/// disk. disk=0 - , disk=1 - A: , disk=2 - B: .. +function DiskSize(disk: integer): int64; +/// +function Milliseconds: integer; +/// Milliseconds MillisecondsDelta +function MillisecondsDelta: integer; +/// +procedure Halt; +/// , exitCode +procedure Halt(exitCode: integer); +/// ms +procedure Sleep(ms: integer); +/// .exe- +function GetEXEFileName: string; +/// +function PointerToString(p: pointer): string; +/// filename +procedure Exec(filename: string); +/// filename args +procedure Exec(filename: string; args: string); +/// filename +procedure Execute(filename: string); +/// filename args +procedure Execute(filename: string; args: string); +/// , +function EnumerateFiles(path: string; searchPattern: string := '*.*'): sequence of string; +/// , , +function EnumerateAllFiles(path: string; searchPattern: string := '*.*'): sequence of string; +/// +function EnumerateDirectories(path: string): sequence of string; +/// , +function EnumerateAllDirectories(path: string): sequence of string; +///-procedure New(var p: ^T); +/// sizeof(T) p . T +//procedure New(var p: ^T); +///-procedure Dispose(var p: ^T); +/// , p +//procedure Dispose(var p: ^T); +//>> # Functions for file names +/// fname +function ExtractFileName(fname: string): string; +/// fname +function ExtractFileExt(fname: string): string; +/// fname +function ExtractFilePath(fname: string): string; +/// fname +function ExtractFileDir(fname: string): string; +/// fname +function ExtractFileDrive(fname: string): string; +/// fname +function ExpandFileName(fname: string): string; +//>> # Math subroutines +///-function Sign(x: ): ; +/// x +function Sign(x: shortint): integer; +///-function Abs(x: ): ; +/// x +function Abs(x: integer): integer; +/// x +function Sin(x: real): real; +/// x +function Sinh(x: real): real; +/// x +function Cos(x: real): real; +/// x +function Cosh(x: real): real; +/// x +function Tan(x: real): real; +/// x +function Tanh(x: real): real; +/// x +function ArcSin(x: real): real; +/// x +function ArcCos(x: real): real; +/// x +function ArcTan(x: real): real; +/// x +function Exp(x: real): real; +/// x +function Ln(x: real): real; +/// x +function Log(x: real): real; +/// x 2 +function Log2(x: real): real; +/// x +function Log10(x: real): real; +/// x base +function LogN(base, x: real): real; +/// x +function Sqrt(x: real): real; +///-function Sqr(x: ): ; +/// x +function Sqr(x: integer): int64; +/// x y +function Power(x, y: real): real; +/// x n +function Power(x: real; n: integer): real; +/// x y +function Power(x: BigInteger; y: integer): BigInteger; +/// x, . , +/// ( ): Round(2.5)=2, Round(3.5)=4 +function Round(x: real): integer; +/// x, digits +function Round(x: real; digits: integer): real; +/// x, +function RoundBigInteger(x: real): BigInteger; +/// x +function Trunc(x: real): integer; +/// x +function TruncBigInteger(x: real): BigInteger; +/// x +function Int(x: real): real; +/// x +function Frac(x: real): real; +/// <= x +function Floor(x: real): integer; +/// >= x +function Ceil(x: real): integer; +/// +function RadToDeg(x: real): real; +/// +function DegToRad(x: real): real; +/// +procedure Randomize; +/// , seed. seed +procedure Randomize(seed: integer); +/// 0 maxValue-1 +function Random(maxValue: integer): integer; +/// a b +function Random(a, b: integer): integer; +/// [0..1) +function Random: real; +/// 0 maxValue-1 +function Random2(maxValue: integer): (integer, integer); +/// a b +function Random2(a, b: integer): (integer, integer); +/// [0..1) +function Random2: (real, real); +/// 0 maxValue-1 +function Random3(maxValue: integer): (integer, integer, integer); +/// a b +function Random3(a, b: integer): (integer, integer, integer); +/// [0..1) +function Random3: (real, real, real); +///-function Max(a: , b: ): ; +/// a,b +function Max(a, b: byte): byte; +///-function Min(a: , b: ): ; +/// a,b +function Min(a, b: byte): byte; +///-function Odd(i: ): boolean; +/// True, i , False +function Odd(i: byte): boolean; +//>> # Functions for Complex numbers +/// re im +function Cplx(re, im: real): Complex; +/// +function CplxFromPolar(magnitude, phase: real): Complex; +/// +function Sqrt(c: Complex): Complex; +/// +function Abs(c: Complex): Complex; +/// +function Conjugate(c: Complex): Complex; +/// +function Cos(c: Complex): Complex; +/// +function Exp(c: Complex): Complex; +/// +function Ln(c: Complex): Complex; +/// +function Log(c: Complex): Complex; +/// +function Log10(c: Complex): Complex; +/// +function Power(c, power: Complex): Complex; +/// +function Sin(c: Complex): Complex; +//>> # Subroutines for set of T +///- procedure Include(var s: set of T; element: T); +/// element s +procedure Include(var s: TypedSet; el: object); +///- procedure Exclude(var s: set of T; element: T); +/// element s +procedure Exclude(var s: TypedSet; el: object); +//>> # Subroutines for char +/// c 1 +procedure Inc(var c: char); +/// c n +procedure Inc(var c: char; n: integer); +/// c 1 +procedure Dec(var c: char); +/// c n +procedure Dec(var c: char; n: integer); +/// x +function Pred(x: char): char; +/// x +function Succ(x: char): char; +/// Windows +function ChrAnsi(a: byte): char; +/// Windows +function OrdAnsi(a: char): byte; +/// Unicode +function Chr(a: word): char; +/// Unicode +function Ord(a: char): word; +/// Unicode +function ChrUnicode(a: word): char; +/// Unicode +function OrdUnicode(a: char): word; +/// +function UpperCase(ch: char): char; +/// +function LowerCase(ch: char): char; +/// +function UpCase(ch: char): char; +/// +function LowCase(ch: char): char; +//>> # Subroutines for string +///-procedure Str(i: ; var s: string); +/// i s +procedure Str(i: integer; var s: string); +/// r s +procedure Str(r: real; var s: string); +/// r s +procedure Str(r: single; var s: string); +/// subs s. , 0 +function Pos(subs, s: string; from: integer := 1): integer; +/// subs s from. , 0 +function PosEx(subs, s: string; from: integer := 1): integer; +/// subs s. , 0 +function LastPos(subs, s: string): integer; +/// subs s from. , 0 +function LastPos(subs, s: string; from: integer): integer; +/// +function Length(s: string): integer; +/// s n +procedure SetLength(var s: string; n: integer); +/// source s index +procedure Insert(source: string; var s: string; index: integer); +/// s count index +procedure Delete(var s: string; index, count: integer); +/// s count index +function Copy(s: string; index, count: integer): string; +///-function Concat(s1,s2,...): string; +/// , s1,s2,... +function Concat(params strs: array of string): string; +/// , s1 s2 +function Concat(s1, s2: string): string; +/// +function LowerCase(s: string): string; +/// +function UpperCase(s: string): string; +/// , count ch +function StringOfChar(ch: char; count: integer): string; +/// +function ReverseString(s: string): string; +/// length index +function ReverseString(s: string; index,length: integer): string; +/// . < 0 s1 0 s1>s2 = 0 s1=s2 +function CompareStr(s1, s2: string): integer; +/// count s +function LeftStr(s: string; count: integer): string; +/// count s +function RightStr(s: string; count: integer): string; +/// +function Trim(s: string): string; +/// +function TrimLeft(s: string): string; +/// +function TrimRight(s: string): string; +/// +function StrToInt(s: string): integer; +/// +function StrToInt64(s: string): int64; +/// +function StrToFloat(s: string): real; +/// +function StrToReal(s: string): real; +/// s value. +/// False +function TryStrToInt(s: string; var value: integer): boolean; +/// s value. +/// False +function TryStrToInt64(s: string; var value: int64): boolean; +/// s value. +/// False +function TryStrToFloat(s: string; var value: real): boolean; +/// s value. +/// False +function TryStrToFloat(s: string; var value: single): boolean; +/// s value. +/// False +function TryStrToReal(s: string; var value: real): boolean; +/// s value. +/// False +function TryStrToSingle(s: string; var value: single): boolean; +/// from from +function ReadIntegerFromString(s: string; var from: integer): integer; +/// from from +function ReadRealFromString(s: string; var from: integer): real; +/// from from +function ReadWordFromString(s: string; var from: integer): string; +/// True False +function StringIsEmpty(s: string; var from: integer): boolean; +/// from from . +/// True False +function TryReadIntegerFromString(s: string; var from: integer; var res: integer): boolean; +/// from from . +/// True False +function TryReadRealFromString(s: string; var from: integer; var res: real): boolean; +///-procedure Val(s: string; var value: ; var err: integer); +/// s value. +/// , err=0, err>0 +procedure Val(s: string; var value: integer; var err: integer); +/// +function IntToStr(a: integer): string; +/// +function IntToStr(a: int64): string; +/// +function FloatToStr(a: real): string; +/// , +function Format(formatstring: string; params pars: array of object): string; +//>> # Common subroutines +/// i 1 +procedure Inc(var i: integer); +/// i n +procedure Inc(var i: integer; n: integer); +/// i 1 +procedure Dec(var i: integer); +/// i n +procedure Dec(var i: integer; n: integer); +///-procedure Inc(var e: ); +/// 1 +procedure Inc(var b: byte); +///-procedure Inc(var e: ; n: integer); +/// n +procedure Inc(var b: byte; n: integer); +///-procedure Dec(var e: ); +/// 1 +procedure Dec(var b: byte); +///-procedure Dec(var e: ; n: integer); +/// n +procedure Dec(var b: byte; n: integer); +///-function Ord(a: ): ; +/// a +function Ord(a: integer): integer; +///-function Ord(a: ): integer; +/// a +function Ord(a: longword): longword; +///-function Succ(x: ): ; +/// x +function Succ(x: integer): integer; +///-function Succ(x: ): ; +/// x +function Succ(x: byte): byte; +///-function Pred(x: ): ; +/// x +function Pred(x: integer): integer; +///-function Pred(x: ): ; +/// x +function Pred(x: byte): byte; +/// +procedure Swap(var a, b: T); +/// True, +function Eoln: boolean; +/// True, +function Eof: boolean; +//>> # Subroutines for array of T +///- function Low(a: array of T): integer; +/// 0 +function Low(i: System.Array): integer; +///- function High(a: array of T): integer; +/// +function High(i: System.Array): integer; +///- function Length(a: array of T): integer; +/// +function Length(a: System.Array): integer; +///- function Length(a: array of T; dim: integer): integer; +/// dim +function Length(a: System.Array; dim: integer): integer; +///- procedure SetLength(var a: array of T); +/// . +//procedure SetLength(var a: System.Array); +///- procedure SetLength(var a: array of T; n1,n2,...: integer); +/// n- . +//procedure SetLength(var a: System.Array); +///- function Copy(a: array of T): array of T; +/// +function Copy(a: System.Array): System.Array; +/// +procedure Sort(a: array of T); +/// , cmp +procedure Sort(a: array of T; cmp: (T,T)->integer); +/// , less +procedure Sort(a: array of T; less: (T,T)->boolean); +/// +procedure Sort(l: List); +/// , cmp +procedure Sort(l: List; cmp: (T,T)->integer); +/// , less +procedure Sort(l: List; less: (T,T)->boolean); +/// +procedure Reverse(a: array of T); +/// count, index +procedure Reverse(a: array of T; index, count: integer); +/// +procedure Reverse(a: List); +/// count, index +procedure Reverse(a: List; index, count: integer); +/// +procedure Shuffle(a: array of T); +/// +procedure Shuffle(l: List); +//>> # Subroutines for sequence generation +/// a b +function Range(a, b: integer): sequence of integer; +/// c1 c2 +function Range(c1, c2: char): sequence of char; +/// [a,b] n ( Partition) +function Range(a, b: real; n: integer): sequence of real; +/// [a,b] n +function Partition(a, b: real; n: integer): sequence of real; +/// a b step +function Range(a, b, step: integer): sequence of integer; +/// +function Seq(params a: array of T): sequence of T; +/// n +function SeqRandom(n: integer := 10; a: integer := 0; b: integer := 100): sequence of integer; +/// n +function SeqRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): sequence of integer; +/// n +function SeqRandomReal(n: integer := 10; a: real := 0; b: real := 10): sequence of real; +/// count , f(i) +function SeqGen(count: integer; f: integer->T): sequence of T; +/// count , f(i), i=from +function SeqGen(count: integer; f: integer->T; from: integer): sequence of T; +/// count , first, next +function SeqGen(count: integer; first: T; next: T->T): sequence of T; +/// count , first second, +/// next +function SeqGen(count: integer; first, second: T; next: (T,T) ->T): sequence of T; +/// first, +/// next pred +function SeqWhile(first: T; next: T->T; pred: T->boolean): sequence of T; +/// , first second, +/// next pred +function SeqWhile(first, second: T; next: (T,T) ->T; pred: T->boolean): sequence of T; +/// count x +function SeqFill(count: integer; x: T): sequence of T; +/// n , +function ReadSeqInteger(n: integer): sequence of integer; +/// n , +function ReadSeqReal(n: integer): sequence of real; +/// n , +function ReadSeqString(n: integer): sequence of string; +/// n , +function ReadSeqInteger(prompt: string; n: integer): sequence of integer; +/// n , +function ReadSeqReal(prompt: string; n: integer): sequence of real; +/// n , +function ReadSeqString(prompt: string; n: integer): sequence of string; +/// , +function ReadSeqIntegerWhile(cond: integer->boolean): sequence of integer; +/// , +function ReadSeqRealWhile(cond: real->boolean): sequence of real; +/// , +function ReadSeqStringWhile(cond: string->boolean): sequence of string; +/// , +function ReadSeqIntegerWhile(prompt: string; cond: integer->boolean): sequence of integer; +/// , +function ReadSeqRealWhile(prompt: string; cond: real->boolean): sequence of real; +/// , +function ReadSeqStringWhile(prompt: string; cond: string->boolean): sequence of string; +//>> # Subroutines for array of T generation +/// , +function Arr(params a: array of T): array of T; +/// , +function Arr(a: sequence of T): array of T; +/// n, +function ArrRandom(n: integer := 10; a: integer := 0; b: integer := 100): array of integer; +/// n, +function ArrRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): array of integer; +/// n, +function ArrRandomReal(n: integer := 10; a: real := 0; b: real := 10): array of real; +/// count , gen(i) +function ArrGen(count: integer; gen: integer->T): array of T; +/// count , gen(i), i=from +function ArrGen(count: integer; gen: integer->T; from: integer): array of T; +/// count , first, next +function ArrGen(count: integer; first: T; next: T->T): array of T; +/// count , first second, next +function ArrGen(count: integer; first, second: T; next: (T,T) ->T): array of T; +/// count x +function ArrFill(count: integer; x: T): array of T; +/// n , +function ReadArrInteger(n: integer): array of integer; +/// n , +function ReadArrReal(n: integer): array of real; +/// n , +function ReadArrString(n: integer): array of string; +/// n , +function ReadArrInteger(prompt: string; n: integer): array of integer; +/// n , +function ReadArrReal(prompt: string; n: integer): array of real; +/// n , +function ReadArrString(prompt: string; n: integer): array of string; +//>> # Subroutines for matrixes +/// m x n, +function Matr(m,n: integer; params data: array of T): array [,] of T; +/// m x n, +function MatrRandom(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +/// m x n, +function MatrRandomInteger(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +/// m x n, +function MatrRandomReal(m: integer := 5; n: integer := 5; a: real := 0; b: real := 10): array [,] of real; +/// m x n, x +function MatrFill(m, n: integer; x: T): array [,] of T; +/// m x n, x +function MatrGen(m, n: integer; gen: (integer,integer)->T): array [,] of T; +/// +function Transpose(a: array [,] of T): array [,] of T; +/// m n , +function ReadMatrInteger(m, n: integer): array [,] of integer; +/// m n , +function ReadMatrReal(m, n: integer): array [,] of real; +//>> # Subroutines for tuple generation +///- function Rec(x1: T1, x2: T2,...): (T1,T2,...); +/// +function Rec(x1: T1; x2: T2): System.Tuple; +//>> Lst, LLst, HSet, SSet, Dict, KV # Short functions Lst, HSet, SSet, Dict, KV +/// , +function Lst(params a: array of T): List; +/// , +function Lst(a: sequence of T): List; +/// , +function LLst(params a: array of T): LinkedList; +/// , +function LLst(a: sequence of T): LinkedList; +/// , +function HSet(params a: array of T): HashSet; +/// , +function HSet(a: sequence of T): HashSet; +/// , +function SSet(params a: array of T): SortedSet; +/// , +function SSet(a: sequence of T): SortedSet; +/// (, ) +function Dict(params pairs: array of KeyValuePair): Dictionary; +/// (, ) +function Dict(params pairs: array of (TKey, TVal)): Dictionary; +/// (, ) +function KV(key: TKey; value: TVal): KeyValuePair; +//>> # Infinite sequences +/// 1 +function Step(Self: integer): sequence of integer; extensionmethod; +/// step +function Step(Self: integer; step: integer): sequence of integer; extensionmethod; +/// step +function Step(Self: real; step: real): sequence of real; extensionmethod; +/// +function Cycle(Self: sequence of T): sequence of T; extensionmethod; +//>> XXX - ! # XXX +AdjGroupClass = class +private +cur: T; +enm: IEnumerator; +fin: boolean; +public +begin +enm := a.GetEnumerator(); +fin := enm.MoveNext; +if fin then +cur := enm.Current; +end; +function TakeGroup: sequence of T; +begin +yield cur; +fin := enm.movenext; +while fin do +begin +if enm.current = cur then +yield enm.current +else +begin +cur := enm.Current; +break; +end; +fin := enm.movenext; +end; +end; +end; +//>> Print # Print for elementary types +function Print(Self: integer): integer; extensionmethod; +function Print(Self: real): real; extensionmethod; +function Print(Self: char): char; extensionmethod; +function Print(Self: boolean): boolean; extensionmethod; +function Print(Self: BigInteger): BigInteger; extensionmethod; +function Println(Self: integer): integer; extensionmethod; +function Println(Self: real): real; extensionmethod; +function Println(Self: char): char; extensionmethod; +function Println(Self: boolean): boolean; extensionmethod; +function Println(Self: BigInteger): BigInteger; extensionmethod; +//>> sequence of T # Extension methods for sequence of T +/// , delim +function Print(Self: sequence of T; delim: string): sequence of T; extensionmethod; +/// , +function Print(Self: sequence of T): sequence of T; extensionmethod; +/// , delim , +function Println(Self: sequence of T; delim: string): sequence of T; extensionmethod; +/// , , +function Println(Self: sequence of T): sequence of T; extensionmethod; +/// +function WriteLines(Self: sequence of string; fname: string): sequence of string; extensionmethod; +/// , +function PrintLines(Self: sequence of T): sequence of T; extensionmethod; +/// , map +function PrintLines(Self: sequence of T; map: T->T1): sequence of T; extensionmethod; +/// , , delim +function JoinIntoString(Self: sequence of T; delim: string): string; extensionmethod; +/// , , +function JoinIntoString(Self: sequence of T): string; extensionmethod; +/// +procedure ForEach(Self: sequence of T; action: T -> ()); extensionmethod; +/// , +procedure ForEach(Self: sequence of T; action: (T,integer) -> ()); extensionmethod; +/// +function Sorted(Self: sequence of T): sequence of T; extensionmethod; +/// +function SortedDescending(Self: sequence of T): sequence of T; extensionmethod; +/// +function Order(Self: sequence of T): sequence of T; extensionmethod; +/// +function OrderDescending(Self: sequence of T): sequence of T; extensionmethod; +/// HashSet +function ToHashSet(Self: sequence of T): HashSet; extensionmethod; +/// SortedSet +function ToSortedSet(Self: sequence of T): SortedSet; extensionmethod; +/// LinkedList +function ToLinkedList(Self: sequence of T): LinkedList; extensionmethod; +/// +function MinBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// +function MaxBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// +function LastMinBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// +function LastMaxBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// count +function TakeLast(Self: sequence of T; count: integer): sequence of T; extensionmethod; +/// count +function SkipLast(self: sequence of T; count: integer := 1): sequence of T; extensionmethod; +/// +function Cartesian(Self: sequence of T; b: sequence of T1): sequence of (T, T1); extensionmethod; +/// +function Cartesian(Self: sequence of T; b: sequence of T1; func: (T,T1)->T2): sequence of T2; extensionmethod; +/// ind +function SplitAt(Self: sequence of T; ind: integer): (sequence of T, sequence of T); extensionmethod; +/// +function Partition(Self: sequence of T; cond: T->boolean): (sequence of T, sequence of T); extensionmethod; +/// , +function Partition(Self: sequence of T; cond: (T,integer)->boolean): (sequence of T, sequence of T); extensionmethod; +/// +function ZipTuple(Self: sequence of T; a: sequence of T1): sequence of (T, T1); extensionmethod; +/// +function ZipTuple(Self: sequence of T; a: sequence of T1; b: sequence of T2): sequence of (T, T1, T2); extensionmethod; +/// +function ZipTuple(Self: sequence of T; a: sequence of T1; b: sequence of T2; c: sequence of T3): sequence of (T, T1, T2, T3); extensionmethod; +/// +function UnZipTuple(Self: sequence of (T, T1)): (sequence of T, sequence of T1); extensionmethod; +/// +function UnZipTuple(Self: sequence of (T, T1, T2)): (sequence of T, sequence of T1, sequence of T2); extensionmethod; +/// +function UnZipTuple(Self: sequence of (T, T1, T2, T3)): (sequence of T, sequence of T1, sequence of T2, sequence of T3); extensionmethod; +/// +function Interleave(Self: sequence of T; a: sequence of T): sequence of T; extensionmethod; +/// +function Interleave(Self: sequence of T; a, b: sequence of T): sequence of T; extensionmethod; +/// +function Interleave(Self: sequence of T; a, b, c: sequence of T): sequence of T; extensionmethod; +/// +function Numerate(Self: sequence of T): sequence of (integer, T); extensionmethod; +/// from +function Numerate(Self: sequence of T; from: integer): sequence of (integer, T); extensionmethod; +/// +function Tabulate(Self: sequence of T; F: T->T1): sequence of (T, T1); extensionmethod; +/// +function Pairwise(Self: sequence of T): sequence of (T, T); extensionmethod; +/// , func +function Pairwise(Self: sequence of T; func: (T,T)->Res): sequence of Res; extensionmethod; +/// size +function Batch(Self: sequence of T; size: integer): sequence of sequence of T; extensionmethod; +/// size +function Batch(Self: sequence of T; size: integer; proj: Func, Res>): sequence of Res; extensionmethod; +/// from step > 0 +function Slice(Self: sequence of T; from, step: integer): sequence of T; extensionmethod; +/// from step > 0 count +function Slice(Self: sequence of T; from, step, count: integer): sequence of T; extensionmethod; +/// +function Incremental(Self: sequence of integer): sequence of integer; extensionmethod; +/// +function Incremental(Self: array of integer): sequence of integer; extensionmethod; +/// +function Incremental(Self: List): sequence of integer; extensionmethod; +/// +function Incremental(Self: LinkedList): sequence of integer; extensionmethod; +/// +function Incremental(Self: sequence of real): sequence of real; extensionmethod; +/// +function Incremental(Self: array of real): sequence of real; extensionmethod; +/// +function Incremental(Self: List): sequence of real; extensionmethod; +/// +function Incremental(Self: LinkedList): sequence of real; extensionmethod; +/// . func +function Incremental(Self: sequence of T; func: (T,T)->T1): sequence of T1; extensionmethod; +/// . func +function Incremental(Self: sequence of T; func: (T,T,integer)->T1): sequence of T1; extensionmethod; +/// , +function AdjacentGroup(Self: sequence of T): sequence of array of T; extensionmethod; +//>> List # Extension methods for List T +/// +function Shuffle(Self: List): List; extensionmethod; +/// . , -1 +function AdjacentFind(Self: IList; start: integer := 0): integer; extensionmethod; +/// , eq, . , -1 +function AdjacentFind(Self: IList; eq: (T,T)->boolean; start: integer := 0): integer; extensionmethod; +/// index +function IndexMin(Self: IList; index: integer := 0): integer; extensionmethod;where T: IComparable; +/// index +function IndexMax(self: IList; index: integer := 0): integer; extensionmethod;where T: System.IComparable; +/// +function LastIndexMin(Self: IList): integer; extensionmethod;where T: System.IComparable; +/// [0,index-1] +function LastIndexMin(Self: IList; index: integer): integer; extensionmethod;where T: System.IComparable; +/// +function LastIndexMax(Self: IList): integer; extensionmethod;where T: System.IComparable; +/// [0,index-1] +function LastIndexMax(Self: IList; index: integer): integer; extensionmethod;where T: System.IComparable; +/// +procedure Replace(Self: IList; oldValue, newValue: T); extensionmethod; +/// +procedure Transform(Self: IList; f: T->T); extensionmethod; +/// , +procedure Fill(Self: IList; f: integer->T); extensionmethod; +/// from step +function Slice(Self: List; from, step: integer): List; extensionmethod; +/// from step count +function Slice(Self: List; from, step, count: integer): List; extensionmethod; +/// . , +function RemoveLast(Self: List): List; extensionmethod; +procedure CorrectFromTo(situation: integer; Len: integer; var from, to: integer; step: integer); +//>> array [,] of T # Extension methods for array [,] of T +/// +function RowCount(Self: array [,] of T): integer; extensionmethod; +/// +function ColCount(Self: array [,] of T): integer; extensionmethod; +/// , w - +function Print(Self: array [,] of T; w: integer := 4): array [,] of T; extensionmethod; +/// :w:f +function Print(Self: array [,] of real; w: integer := 7; f: integer := 2): array [,] of real; extensionmethod; +/// , w - +function Println(Self: array [,] of T; w: integer := 4): array [,] of T; extensionmethod; +/// :w:f +function Println(Self: array [,] of real; w: integer := 7; f: integer := 2): array [,] of real; extensionmethod; +/// k- +function Row(Self: array [,] of T; k: integer): array of T; extensionmethod; +/// k- +function Col(Self: array [,] of T; k: integer): array of T; extensionmethod; +/// k- +function RowSeq(Self: array [,] of T; k: integer): sequence of T; extensionmethod; +/// k- +function ColSeq(Self: array [,] of T; k: integer): sequence of T; extensionmethod; +/// +function Rows(Self: array [,] of T): sequence of sequence of T; extensionmethod; +/// +function Cols(Self: array [,] of T): sequence of sequence of T; extensionmethod; +/// k1 k2 +procedure SwapRows(Self: array [,] of T; k1, k2: integer); extensionmethod; +/// k1 k2 +procedure SwapCols(Self: array [,] of T; k1, k2: integer); extensionmethod; +/// k +procedure SetRow(Self: array [,] of T; k: integer; a: array of T); extensionmethod; +/// k +procedure SetRow(Self: array [,] of T; k: integer; a: sequence of T); extensionmethod := Self.SetRow(k,a.ToArray); +/// k +procedure SetCol(Self: array [,] of T; k: integer; a: array of T); extensionmethod; +/// k +procedure SetCol(Self: array [,] of T; k: integer; a: sequence of T); extensionmethod := Self.SetCol(k,a.ToArray); +/// (a[i,j],i,j) +function ElementsWithIndexes(Self: array [,] of T): sequence of (T, integer, integer); extensionmethod; +/// +function ElementsByRow(Self: array [,] of T): sequence of T; extensionmethod; +/// +function ElementsByCol(Self: array [,] of T): sequence of T; extensionmethod; +/// +function ConvertAll(Self: array [,] of T; converter: T->T1): array [,] of T1; extensionmethod; +/// +procedure Transform(Self: array [,] of T; f: T->T); extensionmethod; +/// , +procedure Fill(Self: array [,] of T; f: (integer,integer) ->T); extensionmethod; +//>> YYY - ! # YYY +function Matr(m,n: integer; params data: array of T): array [,] of T; +function MatrRandom(m: integer; n: integer; a, b: integer): array [,] of integer; +function MatrRandomInteger(m: integer; n: integer; a, b: integer): array [,] of integer; +function MatrRandomReal(m: integer; n: integer; a, b: real): array [,] of real; +function MatrFill(m, n: integer; x: T): array [,] of T; +function MatrGen(m, n: integer; gen: (integer,integer)->T): array [,] of T; +function Transpose(a: array [,] of T): array [,] of T; +function ReadMatrInteger(m, n: integer): array [,] of integer; +function ReadMatrReal(m, n: integer): array [,] of real; +//>> array of T # Extension methods for array of T +/// +function Shuffle(Self: array of T): array of T; extensionmethod; +{/// . , -1 +function AdjacentFind(Self: array of T; start: integer := 0): integer; extensionmethod; +/// , eq, . , -1 +function AdjacentFind(Self: array of T; eq: (T,T)->boolean; start: integer := 0): integer; extensionmethod; +/// +function Min(Self: array of T): T; extensionmethod;where T: System.IComparable; +/// +function Max(Self: array of T): T; extensionmethod;where T: System.IComparable; +/// +function Min(Self: array of integer): integer; extensionmethod; +/// +function Min(Self: array of real): real; extensionmethod; +/// +function Max(Self: array of integer): integer; extensionmethod; +/// +function Max(Self: array of real): real; extensionmethod; +{/// index +function IndexMin(Self: array of T; index: integer := 0): integer; extensionmethod; where T: System.IComparable; +/// index +function IndexMax(self: array of T; index: integer := 0): integer; extensionmethod; where T: System.IComparable; +/// +function LastIndexMin(Self: array of T): integer; extensionmethod; where T: System.IComparable; +/// [0,index] +function LastIndexMin(Self: array of T; index: integer): integer; extensionmethod; where T: System.IComparable; +/// +function LastIndexMax(Self: array of T): integer; extensionmethod; where T: System.IComparable; +/// [0,index] +function LastIndexMax(Self: array of T; index: integer): integer; extensionmethod; where T: System.IComparable; +/// +procedure Replace(Self: array of T; oldValue,newValue: T); extensionmethod; +/// +procedure Transform(self: array of T; f: T -> T); extensionmethod; +/// , +procedure Fill(Self: array of T; f: integer -> T); extensionmethod; +/// +function BinarySearch(self: array of T; x: T): integer; extensionmethod; +/// +function ConvertAll(self: array of T; converter: T->T1): array of T1; extensionmethod; +/// , . , +function Find(self: array of T; p: T->boolean): T; extensionmethod; +/// , . , -1 +function FindIndex(self: array of T; p: T->boolean): integer; extensionmethod; +/// , , start. , -1 +function FindIndex(self: array of T; start: integer; p: T->boolean): integer; extensionmethod; +/// , +function FindAll(self: array of T; p: T->boolean): array of T; extensionmethod; +/// , . , +function FindLast(self: array of T; p: T->boolean): T; extensionmethod; +/// , . , +function FindLastIndex(self: array of T; p: T->boolean): integer; extensionmethod; +/// , , start. , +function FindLastIndex(self: array of T; start: integer; p: T->boolean): integer; extensionmethod; +/// -1 +function IndexOf(self: array of T; x: T): integer; extensionmethod; +/// start -1 +function IndexOf(self: array of T; x: T; start: integer): integer; extensionmethod; +/// -1 +function LastIndexOf(self: array of T; x: T): integer; extensionmethod; +/// start -1 +function LastIndexOf(self: array of T; x: T; start: integer): integer; extensionmethod; +/// +procedure Sort(self: array of T); extensionmethod; +/// , cmp +procedure Sort(self: array of T; cmp: (T,T) ->integer); extensionmethod; +/// +function High(self: System.Array); extensionmethod := High(Self); +/// +function Low(self: System.Array); extensionmethod := Low(Self); +/// +function Indexes(Self: array of T): sequence of integer; extensionmethod := Range(0, Self.Length - 1); +/// , +function IndexesOf(Self: array of T; cond: T->boolean): sequence of integer; extensionmethod; +/// , +function IndexesOf(Self: array of T; cond: (T,integer) ->boolean): sequence of integer; extensionmethod; +/// from step +function Slice(Self: array of T; from, step: integer): array of T; extensionmethod; +/// from step count +function Slice(Self: array of T; from, step, count: integer): array of T; extensionmethod; +//>> integer # Extension methods for integer +/// +function Sqrt(Self: integer): real; extensionmethod; +/// +function Sqr(Self: integer): integer; extensionmethod; +/// True +function Between(Self: integer; a, b: integer): boolean; extensionmethod; +/// True +function InRange(Self: integer; a,b: integer): boolean; extensionmethod; +/// , +function IsEven(Self: integer): boolean; extensionmethod; +/// , +function IsOdd(Self: integer): boolean; extensionmethod; +/// 1 +function Range(Self: integer): sequence of integer; extensionmethod; +/// n +function To(Self: integer; n: integer): sequence of integer; extensionmethod; +/// n +function Downto(Self: integer; n: integer): sequence of integer; extensionmethod; +/// 0,1,...n-1 +function Times(Self: integer): sequence of integer; extensionmethod; +//>> BigInteger # Extension methods for BigInteger +/// +function Sqrt(Self: BigInteger): real; extensionmethod; +//>> real # Extension methods for real +/// True +function Between(Self: real; a, b: real): boolean; extensionmethod; +/// True +function InRange(Self: real; a,b: real): boolean; extensionmethod; +/// +function Sqrt(Self: real): real; extensionmethod; +/// +function Sqr(Self: real): real; extensionmethod; +/// , +function Round(Self: real): integer; extensionmethod; +/// x, digits +function Round(Self: real; digits: integer): real; extensionmethod; +/// , +function RoundBigInteger(Self: real): BigInteger; extensionmethod; +/// +function Trunc(Self: real): integer; extensionmethod; +/// +function TruncBigInteger(Self: real): BigInteger; extensionmethod; +/// , frac +function ToString(Self: real; frac: integer): string; extensionmethod; +//>> char # Extension methods for char +/// True +function Between(Self: char; a, b: char): boolean; extensionmethod; +/// True +function InRange(Self: char; a,b: char): boolean; extensionmethod; +/// +function Pred(Self: char); extensionmethod := PABCSystem.Pred(Self); +/// +function Succ(Self: char); extensionmethod := PABCSystem.Succ(Self); +/// Unicode +function Code(Self: char): integer; extensionmethod := word(Self); +/// +function IsDigit(Self: char); extensionmethod := char.IsDigit(Self); +/// +function IsLetter(Self: char): boolean; extensionmethod; +/// +function IsLower(Self: char): boolean; extensionmethod; +/// +function IsUpper(Self: char): boolean; extensionmethod; +/// +function ToDigit(Self: char): integer; extensionmethod; +/// +function ToLower(Self: char): char; extensionmethod; +/// +function ToUpper(Self: char): char; extensionmethod; +//>> string # Extension methods for string +/// True +function Between(Self: string; a, b: string): boolean; extensionmethod; +/// True +function InRange(Self: string; a,b: string): boolean; extensionmethod; +/// from from +function ReadInteger(Self: string; var from: integer): integer; extensionmethod; +/// from from +function ReadReal(Self: string; var from: integer): real; extensionmethod; +/// from from +function ReadWord(Self: string; var from: integer): string; extensionmethod; +/// +function ToInteger(Self: string): integer; extensionmethod; +/// BigInteger +function ToBigInteger(Self: string): BigInteger; extensionmethod; +/// +function ToReal(Self: string): real; extensionmethod; +/// +function ToWords(Self: string; params delim: array of char): array of string; extensionmethod; +/// +function ToIntegers(Self: string): array of integer; extensionmethod; +/// +function ToReals(Self: string): array of real; extensionmethod; +/// +function Inverse(Self: string): string; extensionmethod; +/// +function RegexReplace(Self: string; reg, repl: string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +/// +function RegexReplace(Self: string; reg: string; repl: Match->string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +/// Match +function Matches(Self: string; reg: string; options: RegexOptions := RegexOptions.None): sequence of Match; extensionmethod; +/// +function MatchValue(Self: string; reg: string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +/// +function MatchValues(Self: string; reg: string; options: RegexOptions := RegexOptions.None): sequence of string; extensionmethod; +/// +function IsMatch(Self: string; reg: string; options: RegexOptions := RegexOptions.None): boolean; extensionmethod := Regex.IsMatch(Self, reg, options); +/// +function Remove(Self: string; params targets: array of string): string; extensionmethod; +/// , length +function Right(Self: string; length: integer): string; extensionmethod; +/// , length +function Left(Self: string; length: integer): string; extensionmethod; +/// from step +function Slice(Self: string; from, step: integer): string; extensionmethod; +/// from step count +function Slice(Self: string; from, step, count: integer): string; extensionmethod; +//>> Func # Extension methods for Func +/// +function Compose(Self: T2->TResult; composer: T1->T2): T1->TResult; extensionmethod; +//>> Complex # Extension methods for Complex +/// +function Conjugate(Self: Complex): Complex; extensionmethod; +//>> IDictionary # Extension methods for IDictionary +/// , , , +function Get(Self: IDictionary; K: Key): Value; extensionmethod; +//>> # Subroutines for typed files +/// +function OpenBinary(fname: string): file of T; +/// +function CreateBinary(fname: string): file of T; +/// +function OpenFile(fname: string): file of T; +/// +function CreateFile(fname: string): file of T; +/// +function OpenFileInteger(fname: string): file of integer; +/// +function OpenFileReal(fname: string): file of real; +/// +function CreateFileInteger(fname: string): file of integer; +/// +function CreateFileReal(fname: string): file of real; +/// , +procedure WriteElements(fname: string; ss: sequence of T); +//>> # Extension methods for typed files +/// n +function Seek(Self: file of T; n: int64): file of T; extensionmethod; +/// +function Read(Self: file of T): T; extensionmethod; +/// +function Read2(Self: file of T): (T,T); extensionmethod; +/// +function Read3(Self: file of T): (T,T,T); extensionmethod; +/// +function ReadElements(Self: file of T): sequence of T; extensionmethod; +/// , +function ReadElements(fname: string): sequence of T; +/// +procedure Write(Self: file of T; params vals: array of T); extensionmethod; diff --git a/PABCNetHelp/PABCSystemDocGen/PABC2.pas b/PABCNetHelp/PABCSystemDocGen/PABC2.pas new file mode 100644 index 000000000..fd03bbc8f --- /dev/null +++ b/PABCNetHelp/PABCSystemDocGen/PABC2.pas @@ -0,0 +1,1514 @@ +//>> # Standard constants +/// shortint +MaxShortInt = shortint.MaxValue; +/// byte +MaxByte = byte.MaxValue; +/// smallint +MaxSmallInt = smallint.MaxValue; +/// word +MaxWord = word.MaxValue; +/// longword +MaxLongWord = longword.MaxValue; +/// int64 +MaxInt64 = int64.MaxValue; +/// uint64 +MaxUInt64 = uint64.MaxValue; +/// double +MaxDouble = real.MaxValue; +/// double +MinDouble = real.Epsilon; +/// real +MaxReal = real.MaxValue; +/// real +MinReal = real.Epsilon; +/// single +MaxSingle = single.MaxValue; +/// single +MinSingle = single.Epsilon; +/// integer +MaxInt = integer.MaxValue; +/// Pi +Pi = 3.141592653589793; +/// E +E = 2.718281828459045; +/// +NewLine = System.Environment.NewLine; +//>> # Standard types +/// +Object = System.Object; +/// +Exception = System.Exception; +/// double = real +double = System.Double; +/// longint = integer +longint = System.Int32; +/// cardinal = longword +cardinal = System.UInt32; +/// 128- +decimal = System.Decimal; +/// +BigInteger = System.Numerics.BigInteger; +/// +DateTime = System.DateTime; +/// +Complex = System.Numerics.Complex; +/// +Tuple = System.Tuple; +/// +List = System.Collections.Generic.List; +/// IComparer +Comparer = System.Collections.Generic.Comparer; +/// IComparer +IComparable = System.IComparable; +/// , - +HashSet = System.Collections.Generic.HashSet; +/// , +SortedSet = System.Collections.Generic.SortedSet; +/// ( -), - +Dictionary = System.Collections.Generic.Dictionary; +/// , +SortedDictionary = System.Collections.Generic.SortedDictionary; +/// ( -), +SortedList = System.Collections.Generic.SortedList; +/// - +KeyValuePair = System.Collections.Generic.KeyValuePair; +/// +LinkedList = System.Collections.Generic.LinkedList; +/// +LinkedListNode = System.Collections.Generic.LinkedListNode; +/// - , " - " +Queue = System.Collections.Generic.Queue; +/// - , " - " +Stack = System.Collections.Generic.Stack; +/// +ICollection = System.Collections.Generic.ICollection; +/// +IComparer = System.Collections.Generic.IComparer; +/// - +IDictionary = System.Collections.Generic.IDictionary; +/// , +IEnumerable = System.Collections.Generic.IEnumerable; +/// +IEnumerator = System.Collections.Generic.IEnumerator; +/// +IEqualityComparer = System.Collections.Generic.IEqualityComparer; +/// +IList = System.Collections.Generic.IList; +/// +ISet = System.Collections.Generic.ISet; +/// +StringBuilder = System.Text.StringBuilder; +/// +Encoding = System.Text.Encoding; +/// +Action0 = System.Action; +/// +Action = System.Action; +/// +Action2 = System.Action; +/// +Action3 = System.Action; +/// +Func0 = System.Func; +/// +Func = System.Func; +/// +Func2 = System.Func; +/// +Func3 = System.Func; +/// , +IntFunc = Func; +/// , +RealFunc = Func; +/// , +StringFunc = Func; +/// , boolean +Predicate = System.Predicate; +/// , boolean +Predicate2 = function(x1: T1; x2: T2): boolean; +/// , boolean +Predicate3 = function(x1: T1; x2: T2; x3: T3): boolean; +/// +Regex = System.Text.RegularExpressions.Regex; +/// +Match = System.Text.RegularExpressions.Match; +/// , Regex.Replace +MatchEvaluator = System.Text.RegularExpressions.MatchEvaluator; +/// +MatchCollection = System.Text.RegularExpressions.MatchCollection; +/// +RegexOptions = System.Text.RegularExpressions.RegexOptions; +/// Regex.Match +RegexGroup = System.Text.RegularExpressions.Group; +/// Regex.Match +RegexGroupCollection = System.Text.RegularExpressions.GroupCollection; +/// 255 +ShortString = string[255]; +//>> # Read subroutines +///- procedure Read(a,b,...); +/// a,b,... +procedure Read; +///- procedure Readln(a,b,...); +/// a,b,... +procedure Readln; +/// x . False +function TryRead(var x: integer): boolean; +/// integer, +function ReadInteger: integer; +/// real, +function ReadReal: real; +/// char, +function ReadChar: char; +/// string, +function ReadString: string; +/// boolean, +function ReadBoolean: boolean; +/// integer, , +function ReadlnInteger: integer; +/// real, , +function ReadlnReal: real; +/// char, , +function ReadlnChar: char; +/// string, , +function ReadlnString: string; +/// boolean, , +function ReadlnBoolean: boolean; +/// integer, +function ReadInteger2: (integer, integer); +/// real, +function ReadReal2: (real, real); +/// char, +function ReadChar2: (char, char); +/// string, +function ReadString2: (string, string); +/// integer, , +function ReadlnInteger2: (integer, integer); +/// real, , +function ReadlnReal2: (real, real); +/// char, , +function ReadlnChar2: (char, char); +/// string, , +function ReadlnString2: (string, string); +/// integer, +function ReadInteger3: (integer, integer, integer); +/// real, +function ReadReal3: (real, real, real); +/// char, +function ReadChar3: (char, char, char); +/// string, +function ReadString3: (string, string, string); +/// integer, , +function ReadlnInteger3: (integer, integer, integer); +/// real, , +function ReadlnReal3: (real, real, real); +/// char, , +function ReadlnChar3: (char, char, char); +/// string, , +function ReadlnString3: (string, string, string); +/// integer, +function ReadInteger2(prompt: string): (integer, integer); +/// real, +function ReadReal2(prompt: string): (real, real); +/// char, +function ReadChar2(prompt: string): (char, char); +/// string, +function ReadString2(prompt: string): (string, string); +/// integer, , +function ReadlnInteger2(prompt: string): (integer, integer); +/// real, , +function ReadlnReal2(prompt: string): (real, real); +/// char, , +function ReadlnChar2(prompt: string): (char, char); +/// string, , +function ReadlnString2(prompt: string): (string, string); +/// integer, +function ReadInteger3(prompt: string): (integer, integer, integer); +/// real, +function ReadReal3(prompt: string): (real, real, real); +/// char, +function ReadChar3(prompt: string): (char, char, char); +/// string, +function ReadString3(prompt: string): (string, string, string); +/// integer, , +function ReadlnInteger3(prompt: string): (integer, integer, integer); +/// real, , +function ReadlnReal3(prompt: string): (real, real, real); +/// char, , +function ReadlnChar3(prompt: string): (char, char, char); +/// string, , +function ReadlnString3(prompt: string): (string, string, string); +/// integer, +function ReadInteger(prompt: string): integer; +/// real, +function ReadReal(prompt: string): real; +/// char, +function ReadChar(prompt: string): char; +/// string, +function ReadString(prompt: string): string; +/// boolean, +function ReadBoolean(prompt: string): boolean; +/// integer, , +function ReadlnInteger(prompt: string): integer; +/// real, , +function ReadlnReal(prompt: string): real; +/// char, , +function ReadlnChar(prompt: string): char; +/// string, , +function ReadlnString(prompt: string): string; +/// boolean, , +function ReadlnBoolean(prompt: string): boolean; +///- procedure Read(f: ; a,b,...); +/// a,b,... f +procedure Read(f: Text); +///- procedure Readln(f: Text; a,b,...); +/// a,b,... f +procedure Readln(f: Text); +/// integer, f +function ReadInteger(f: Text): integer; +/// real, f +function ReadReal(f: Text): real; +/// char, f +function ReadChar(f: Text): char; +/// string, f +function ReadString(f: Text): string; +/// boolean, f +function ReadBoolean(f: Text): boolean; +/// integer, f, +function ReadlnInteger(f: Text): integer; +/// real, f, +function ReadlnReal(f: Text): real; +/// char, f, +function ReadlnChar(f: Text): char; +/// string, f, +function ReadlnString(f: Text): string; +/// boolean, f, +function ReadlnBoolean(f: Text): boolean; +//>> # Write subroutines +///- procedure Write(a,b,...); +/// a,b,... +procedure Write; +///- procedure Writeln(a,b,...); +/// a,b,... +procedure Writeln; +///- procedure Write(f: ; a,b,...); +/// a,b,... f +procedure Write(f: Text); +///- procedure Writeln(f: Text; a,b,...); +/// a,b,... f +procedure Writeln(f: Text); +/// args formatstr +procedure WriteFormat(formatstr: string; params args: array of object); +/// args formatstr +procedure WritelnFormat(formatstr: string; params args: array of object); +/// args f formatstr +procedure WriteFormat(f: Text; formatstr: string; params args: array of object); +/// args f formatstr +procedure WritelnFormat(f: Text; formatstr: string; params args: array of object); +///- procedure Print(a,b,...); +/// a,b,... , +procedure Print(s: string); +///- procedure Print(f: Text; a,b,...); +/// a,b,... f, +procedure Print(f: Text; params args: array of object); +///- procedure Println(a,b,...); +/// a,b,... , +procedure Println(params args: array of object); +///- procedure Println(f: Text; a,b,...); +/// a,b,... f, +procedure Println(f: Text; params args: array of object); +//>> # Common subroutines for files +///- procedure Assign(f: ; name: string); +/// +procedure Assign(f: AbstractBinaryFile; name: string); +///- procedure AssignFile(f: ; name: string); +/// +procedure AssignFile(f: AbstractBinaryFile; name: string); +///- procedure Close(f: ); +/// +procedure Close(f: AbstractBinaryFile); +///- procedure CloseFile(f: ); +/// +procedure CloseFile(f: AbstractBinaryFile); +///- function Eof(f: ): boolean; +/// True, +function Eof(f: AbstractBinaryFile): boolean; +///- procedure Erase(f: ); +/// , +procedure Erase(f: AbstractBinaryFile); +///- procedure Rename(f: ; newname: string); +/// , , newname. +procedure Rename(f: AbstractBinaryFile; newname: string); +//>> # Subroutines for text files +/// Windows +procedure Reset(f: Text); +/// +procedure Reset(f: Text; en: Encoding); +/// f name Windows +procedure Reset(f: Text; name: string); +/// f name +procedure Reset(f: Text; name: string; en: Encoding); +/// Windows. - , - +procedure Rewrite(f: Text); +/// . - , - +procedure Rewrite(f: Text; en: Encoding); +/// name f Windows. - , - +procedure Rewrite(f: Text; name: string); +/// f name f . - , - +procedure Rewrite(f: Text; name: string; en: Encoding); +/// Windows +procedure Append(f: Text); +/// +procedure Append(f: Text; en: Encoding); +/// f name Windows +procedure Append(f: Text; name: string); +/// f name +procedure Append(f: Text; name: string; en: Encoding); +/// fname, Windows +function OpenRead(fname: string): Text; +/// fname, +function OpenRead(fname: string; en: Encoding): Text; +/// fname, Windows +function OpenWrite(fname: string): Text; +/// fname, +function OpenWrite(fname: string; en: Encoding): Text; +/// fname, Windows +function OpenAppend(fname: string): Text; +/// fname, +function OpenAppend(fname: string; en: Encoding): Text; +/// True, +function Eoln(f: Text): boolean; +/// , True, +function SeekEof(f: Text): boolean; +/// , True, +function SeekEoln(f: Text): boolean; +/// +procedure Flush(f: Text); +/// , Windows . +function ReadLines(path: string): sequence of string; +/// , . +function ReadLines(path: string; en: Encoding): sequence of string; +/// , Windows , +function ReadAllLines(path: string): array of string; +/// , , +function ReadAllLines(path: string; en: Encoding): array of string; +/// , Windows , +function ReadAllText(path: string): string; +/// , , +function ReadAllText(path: string; en: Encoding): string; +/// , Windows, +procedure WriteLines(path: string; ss: sequence of string); +/// , , +procedure WriteLines(path: string; ss: sequence of string; en: Encoding); +/// , Windows, +procedure WriteAllLines(path: string; ss: array of string); +/// , , +procedure WriteAllLines(path: string; ss: array of string; en: Encoding); +/// , Windows, +procedure WriteAllText(path: string; s: string); +/// , , +procedure WriteAllText(path: string; s: string; en: Encoding); +//>> # Subroutines for binary files +///- procedure Reset(f: ); +/// . - file of T, file +procedure Reset(f: AbstractBinaryFile); +///- procedure Reset(f: ; name: string); +/// f name . - file of T, file +procedure Reset(f: AbstractBinaryFile; name: string); +///- procedure Rewrite(f: ); +/// , . , . - file of T, file +procedure Rewrite(f: AbstractBinaryFile); +///- procedure Rewrite(f: ; name: string); +/// f name , . - file of T, file +procedure Rewrite(f: AbstractBinaryFile; name: string); +///- procedure Truncate(f: ); +/// , . - file of T, file +procedure Truncate(f: AbstractBinaryFile); +///- function FilePos(f: ): int64; +/// +function FilePos(f: TypedFile): int64; +///- function FileSize(f: ): int64; +/// +function FileSize(f: TypedFile): int64; +///- procedure Seek(f: ; n: int64); +/// +procedure Seek(f: TypedFile; n: int64); +//>> C # System subroutines +/// PascalABC.NET +function PascalABCVersion: string; +/// +function ParamCount: integer; +/// i- +function ParamStr(i: integer): string; +/// +function GetDir: string; +/// +procedure ChDir(s: string); +/// +procedure MkDir(s: string); +/// +procedure RmDir(s: string); +/// . True, +function CreateDir(s: string): boolean; +/// . , False +function DeleteFile(s: string): boolean; +/// +function GetCurrentDir: string; +/// . True, +function RemoveDir(s: string): boolean; +/// name, newname. True, +function RenameFile(name, newname: string): boolean; +/// . True, +function SetCurrentDir(s: string): boolean; +/// name newext +function ChangeFileNameExtension(name, newext: string): string; +/// True, name +function FileExists(name: string): boolean; +/// +procedure Assert(cond: boolean; sourceFile: string := ''; line: integer := 0); +/// +procedure Assert(cond: boolean; message: string; sourceFile: string := ''; line: integer := 0); +/// diskname +function DiskFree(diskname: string): int64; +/// diskname +function DiskSize(diskname: string): int64; +/// disk. disk=0 - , disk=1 - A: , disk=2 - B: .. +function DiskFree(disk: integer): int64; +/// disk. disk=0 - , disk=1 - A: , disk=2 - B: .. +function DiskSize(disk: integer): int64; +/// +function Milliseconds: integer; +/// Milliseconds MillisecondsDelta +function MillisecondsDelta: integer; +/// +procedure Halt; +/// , exitCode +procedure Halt(exitCode: integer); +/// ms +procedure Sleep(ms: integer); +/// .exe- +function GetEXEFileName: string; +/// +function PointerToString(p: pointer): string; +/// filename +procedure Exec(filename: string); +/// filename args +procedure Exec(filename: string; args: string); +/// filename +procedure Execute(filename: string); +/// filename args +procedure Execute(filename: string; args: string); +/// , +function EnumerateFiles(path: string; searchPattern: string := '*.*'): sequence of string; +/// , , +function EnumerateAllFiles(path: string; searchPattern: string := '*.*'): sequence of string; +/// +function EnumerateDirectories(path: string): sequence of string; +/// , +function EnumerateAllDirectories(path: string): sequence of string; +///-procedure New(var p: ^T); +/// sizeof(T) p . T +//procedure New(var p: ^T); +///-procedure Dispose(var p: ^T); +/// , p +//procedure Dispose(var p: ^T); +//>> # Functions for file names +/// fname +function ExtractFileName(fname: string): string; +/// fname +function ExtractFileExt(fname: string): string; +/// fname +function ExtractFilePath(fname: string): string; +/// fname +function ExtractFileDir(fname: string): string; +/// fname +function ExtractFileDrive(fname: string): string; +/// fname +function ExpandFileName(fname: string): string; +//>> # Math subroutines +///-function Sign(x: ): ; +/// x +function Sign(x: shortint): integer; +///-function Abs(x: ): ; +/// x +function Abs(x: integer): integer; +/// x +function Sin(x: real): real; +/// x +function Sinh(x: real): real; +/// x +function Cos(x: real): real; +/// x +function Cosh(x: real): real; +/// x +function Tan(x: real): real; +/// x +function Tanh(x: real): real; +/// x +function ArcSin(x: real): real; +/// x +function ArcCos(x: real): real; +/// x +function ArcTan(x: real): real; +/// x +function Exp(x: real): real; +/// x +function Ln(x: real): real; +/// x +function Log(x: real): real; +/// x 2 +function Log2(x: real): real; +/// x +function Log10(x: real): real; +/// x base +function LogN(base, x: real): real; +/// x +function Sqrt(x: real): real; +///-function Sqr(x: ): ; +/// x +function Sqr(x: integer): int64; +/// x y +function Power(x, y: real): real; +/// x n +function Power(x: real; n: integer): real; +/// x y +function Power(x: BigInteger; y: integer): BigInteger; +/// x, . , ( ): Round(2.5)=2, Round(3.5)=4 +function Round(x: real): integer; +/// x, digits +function Round(x: real; digits: integer): real; +/// x, +function RoundBigInteger(x: real): BigInteger; +/// x +function Trunc(x: real): integer; +/// x +function TruncBigInteger(x: real): BigInteger; +/// x +function Int(x: real): real; +/// x +function Frac(x: real): real; +/// <= x +function Floor(x: real): integer; +/// >= x +function Ceil(x: real): integer; +/// +function RadToDeg(x: real): real; +/// +function DegToRad(x: real): real; +/// +procedure Randomize; +/// , seed. seed +procedure Randomize(seed: integer); +/// 0 maxValue-1 +function Random(maxValue: integer): integer; +/// a b +function Random(a, b: integer): integer; +/// [0..1) +function Random: real; +/// 0 maxValue-1 +function Random2(maxValue: integer): (integer, integer); +/// a b +function Random2(a, b: integer): (integer, integer); +/// [0..1) +function Random2: (real, real); +/// 0 maxValue-1 +function Random3(maxValue: integer): (integer, integer, integer); +/// a b +function Random3(a, b: integer): (integer, integer, integer); +/// [0..1) +function Random3: (real, real, real); +///-function Max(a: , b: ): ; +/// a,b +function Max(a, b: byte): byte; +///-function Min(a: , b: ): ; +/// a,b +function Min(a, b: byte): byte; +///-function Odd(i: ): boolean; +/// True, i , False +function Odd(i: byte): boolean; +//>> # Functions for Complex numbers +/// re im +function Cplx(re, im: real): Complex; +/// +function CplxFromPolar(magnitude, phase: real): Complex; +/// +function Sqrt(c: Complex): Complex; +/// +function Abs(c: Complex): Complex; +/// +function Conjugate(c: Complex): Complex; +/// +function Cos(c: Complex): Complex; +/// +function Exp(c: Complex): Complex; +/// +function Ln(c: Complex): Complex; +/// +function Log(c: Complex): Complex; +/// +function Log10(c: Complex): Complex; +/// +function Power(c, power: Complex): Complex; +/// +function Sin(c: Complex): Complex; +//>> # Subroutines for set of T +///- procedure Include(var s: set of T; element: T); +/// element s +procedure Include(var s: TypedSet; el: object); +///- procedure Exclude(var s: set of T; element: T); +/// element s +procedure Exclude(var s: TypedSet; el: object); +//>> # Subroutines for char +/// c 1 +procedure Inc(var c: char); +/// c n +procedure Inc(var c: char; n: integer); +/// c 1 +procedure Dec(var c: char); +/// c n +procedure Dec(var c: char; n: integer); +/// x +function Pred(x: char): char; +/// x +function Succ(x: char): char; +/// Windows +function ChrAnsi(a: byte): char; +/// Windows +function OrdAnsi(a: char): byte; +/// Unicode +function Chr(a: word): char; +/// Unicode +function Ord(a: char): word; +/// Unicode +function ChrUnicode(a: word): char; +/// Unicode +function OrdUnicode(a: char): word; +/// +function UpperCase(ch: char): char; +/// +function LowerCase(ch: char): char; +/// +function UpCase(ch: char): char; +/// +function LowCase(ch: char): char; +//>> # Subroutines for string +///-procedure Str(i: ; var s: string); +/// i s +procedure Str(i: integer; var s: string); +/// r s +procedure Str(r: real; var s: string); +/// r s +procedure Str(r: single; var s: string); +/// subs s. , 0 +function Pos(subs, s: string; from: integer := 1): integer; +/// subs s from. , 0 +function PosEx(subs, s: string; from: integer := 1): integer; +/// subs s. , 0 +function LastPos(subs, s: string): integer; +/// subs s from. , 0 +function LastPos(subs, s: string; from: integer): integer; +/// +function Length(s: string): integer; +/// s n +procedure SetLength(var s: string; n: integer); +/// source s index +procedure Insert(source: string; var s: string; index: integer); +/// s count index +procedure Delete(var s: string; index, count: integer); +/// s count index +function Copy(s: string; index, count: integer): string; +///-function Concat(s1,s2,...): string; +/// , s1,s2,... +function Concat(params strs: array of string): string; +/// , s1 s2 +function Concat(s1, s2: string): string; +/// +function LowerCase(s: string): string; +/// +function UpperCase(s: string): string; +/// , count ch +function StringOfChar(ch: char; count: integer): string; +/// +function ReverseString(s: string): string; +/// length index +function ReverseString(s: string; index,length: integer): string; +/// . < 0 s1 0 s1>s2 = 0 s1=s2 +function CompareStr(s1, s2: string): integer; +/// count s +function LeftStr(s: string; count: integer): string; +/// count s +function RightStr(s: string; count: integer): string; +/// +function Trim(s: string): string; +/// +function TrimLeft(s: string): string; +/// +function TrimRight(s: string): string; +/// +function StrToInt(s: string): integer; +/// +function StrToInt64(s: string): int64; +/// +function StrToFloat(s: string): real; +/// +function StrToReal(s: string): real; +/// s value. False +function TryStrToInt(s: string; var value: integer): boolean; +/// s value. False +function TryStrToInt64(s: string; var value: int64): boolean; +/// s value. False +function TryStrToFloat(s: string; var value: real): boolean; +/// s value. False +function TryStrToFloat(s: string; var value: single): boolean; +/// s value. False +function TryStrToReal(s: string; var value: real): boolean; +/// s value. False +function TryStrToSingle(s: string; var value: single): boolean; +/// from from +function ReadIntegerFromString(s: string; var from: integer): integer; +/// from from +function ReadRealFromString(s: string; var from: integer): real; +/// from from +function ReadWordFromString(s: string; var from: integer): string; +/// True False +function StringIsEmpty(s: string; var from: integer): boolean; +/// from from . True False +function TryReadIntegerFromString(s: string; var from: integer; var res: integer): boolean; +/// from from . True False +function TryReadRealFromString(s: string; var from: integer; var res: real): boolean; +///-procedure Val(s: string; var value: ; var err: integer); +/// s value. , err=0, err>0 +procedure Val(s: string; var value: integer; var err: integer); +/// +function IntToStr(a: integer): string; +/// +function IntToStr(a: int64): string; +/// +function FloatToStr(a: real): string; +/// , +function Format(formatstring: string; params pars: array of object): string; +//>> # Common subroutines +/// i 1 +procedure Inc(var i: integer); +/// i n +procedure Inc(var i: integer; n: integer); +/// i 1 +procedure Dec(var i: integer); +/// i n +procedure Dec(var i: integer; n: integer); +///-procedure Inc(var e: ); +/// 1 +procedure Inc(var b: byte); +///-procedure Inc(var e: ; n: integer); +/// n +procedure Inc(var b: byte; n: integer); +///-procedure Dec(var e: ); +/// 1 +procedure Dec(var b: byte); +///-procedure Dec(var e: ; n: integer); +/// n +procedure Dec(var b: byte; n: integer); +///-function Ord(a: ): ; +/// a +function Ord(a: integer): integer; +///-function Ord(a: ): integer; +/// a +function Ord(a: longword): longword; +///-function Succ(x: ): ; +/// x +function Succ(x: integer): integer; +///-function Succ(x: ): ; +/// x +function Succ(x: byte): byte; +///-function Pred(x: ): ; +/// x +function Pred(x: integer): integer; +///-function Pred(x: ): ; +/// x +function Pred(x: byte): byte; +/// +procedure Swap(var a, b: T); +/// True, +function Eoln: boolean; +/// True, +function Eof: boolean; +//>> # Subroutines for array of T +///- function Low(a: array of T): integer; +/// 0 +function Low(i: System.Array): integer; +///- function High(a: array of T): integer; +/// +function High(i: System.Array): integer; +///- function Length(a: array of T): integer; +/// +function Length(a: System.Array): integer; +///- function Length(a: array of T; dim: integer): integer; +/// dim +function Length(a: System.Array; dim: integer): integer; +///- procedure SetLength(var a: array of T); +/// . +//procedure SetLength(var a: System.Array); +///- procedure SetLength(var a: array of T; n1,n2,...: integer); +/// n- . +//procedure SetLength(var a: System.Array); +///- function Copy(a: array of T): array of T; +/// +function Copy(a: System.Array): System.Array; +/// +procedure Sort(a: array of T); +/// , cmp +procedure Sort(a: array of T; cmp: (T,T)->integer); +/// , less +procedure Sort(a: array of T; less: (T,T)->boolean); +/// +procedure Sort(l: List); +/// , cmp +procedure Sort(l: List; cmp: (T,T)->integer); +/// , less +procedure Sort(l: List; less: (T,T)->boolean); +/// +procedure Reverse(a: array of T); +/// count, index +procedure Reverse(a: array of T; index, count: integer); +/// +procedure Reverse(a: List); +/// count, index +procedure Reverse(a: List; index, count: integer); +/// +procedure Shuffle(a: array of T); +/// +procedure Shuffle(l: List); +//>> # Subroutines for sequence generation +/// a b +function Range(a, b: integer): sequence of integer; +/// c1 c2 +function Range(c1, c2: char): sequence of char; +/// [a,b] n ( Partition) +function Range(a, b: real; n: integer): sequence of real; +/// [a,b] n +function Partition(a, b: real; n: integer): sequence of real; +/// a b step +function Range(a, b, step: integer): sequence of integer; +/// +function Seq(params a: array of T): sequence of T; +/// n +function SeqRandom(n: integer := 10; a: integer := 0; b: integer := 100): sequence of integer; +/// n +function SeqRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): sequence of integer; +/// n +function SeqRandomReal(n: integer := 10; a: real := 0; b: real := 10): sequence of real; +/// count , f(i) +function SeqGen(count: integer; f: integer->T): sequence of T; +/// count , f(i), i=from +function SeqGen(count: integer; f: integer->T; from: integer): sequence of T; +/// count , first, next +function SeqGen(count: integer; first: T; next: T->T): sequence of T; +/// count , first second, next +function SeqGen(count: integer; first, second: T; next: (T,T) ->T): sequence of T; +/// first, next pred +function SeqWhile(first: T; next: T->T; pred: T->boolean): sequence of T; +/// , first second, next pred +function SeqWhile(first, second: T; next: (T,T) ->T; pred: T->boolean): sequence of T; +/// count x +function SeqFill(count: integer; x: T): sequence of T; +/// n , +function ReadSeqInteger(n: integer): sequence of integer; +/// n , +function ReadSeqReal(n: integer): sequence of real; +/// n , +function ReadSeqString(n: integer): sequence of string; +/// n , +function ReadSeqInteger(prompt: string; n: integer): sequence of integer; +/// n , +function ReadSeqReal(prompt: string; n: integer): sequence of real; +/// n , +function ReadSeqString(prompt: string; n: integer): sequence of string; +/// , +function ReadSeqIntegerWhile(cond: integer->boolean): sequence of integer; +/// , +function ReadSeqRealWhile(cond: real->boolean): sequence of real; +/// , +function ReadSeqStringWhile(cond: string->boolean): sequence of string; +/// , +function ReadSeqIntegerWhile(prompt: string; cond: integer->boolean): sequence of integer; +/// , +function ReadSeqRealWhile(prompt: string; cond: real->boolean): sequence of real; +/// , +function ReadSeqStringWhile(prompt: string; cond: string->boolean): sequence of string; +//>> # Subroutines for array of T generation +/// , +function Arr(params a: array of T): array of T; +/// , +function Arr(a: sequence of T): array of T; +/// n, +function ArrRandom(n: integer := 10; a: integer := 0; b: integer := 100): array of integer; +/// n, +function ArrRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): array of integer; +/// n, +function ArrRandomReal(n: integer := 10; a: real := 0; b: real := 10): array of real; +/// count , gen(i) +function ArrGen(count: integer; gen: integer->T): array of T; +/// count , gen(i), i=from +function ArrGen(count: integer; gen: integer->T; from: integer): array of T; +/// count , first, next +function ArrGen(count: integer; first: T; next: T->T): array of T; +/// count , first second, next +function ArrGen(count: integer; first, second: T; next: (T,T) ->T): array of T; +/// count x +function ArrFill(count: integer; x: T): array of T; +/// n , +function ReadArrInteger(n: integer): array of integer; +/// n , +function ReadArrReal(n: integer): array of real; +/// n , +function ReadArrString(n: integer): array of string; +/// n , +function ReadArrInteger(prompt: string; n: integer): array of integer; +/// n , +function ReadArrReal(prompt: string; n: integer): array of real; +/// n , +function ReadArrString(prompt: string; n: integer): array of string; +//>> # Subroutines for matrixes +/// m x n, +function Matr(m,n: integer; params data: array of T): array [,] of T; +/// m x n, +function MatrRandom(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +/// m x n, +function MatrRandomInteger(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +/// m x n, +function MatrRandomReal(m: integer := 5; n: integer := 5; a: real := 0; b: real := 10): array [,] of real; +/// m x n, x +function MatrFill(m, n: integer; x: T): array [,] of T; +/// m x n, x +function MatrGen(m, n: integer; gen: (integer,integer)->T): array [,] of T; +/// +function Transpose(a: array [,] of T): array [,] of T; +/// m n , +function ReadMatrInteger(m, n: integer): array [,] of integer; +/// m n , +function ReadMatrReal(m, n: integer): array [,] of real; +//>> # Subroutines for tuple generation +///- function Rec(x1: T1, x2: T2,...): (T1,T2,...); +/// +function Rec(x1: T1; x2: T2): System.Tuple; +//>> Lst, LLst, HSet, SSet, Dict, KV # Short functions Lst, HSet, SSet, Dict, KV +/// , +function Lst(params a: array of T): List; +/// , +function Lst(a: sequence of T): List; +/// , +function LLst(params a: array of T): LinkedList; +/// , +function LLst(a: sequence of T): LinkedList; +/// , +function HSet(params a: array of T): HashSet; +/// , +function HSet(a: sequence of T): HashSet; +/// , +function SSet(params a: array of T): SortedSet; +/// , +function SSet(a: sequence of T): SortedSet; +/// (, ) +function Dict(params pairs: array of KeyValuePair): Dictionary; +/// (, ) +function Dict(params pairs: array of (TKey, TVal)): Dictionary; +/// (, ) +function KV(key: TKey; value: TVal): KeyValuePair; +//>> # Infinite sequences +/// 1 +function Step(Self: integer): sequence of integer; extensionmethod; +/// step +function Step(Self: integer; step: integer): sequence of integer; extensionmethod; +/// step +function Step(Self: real; step: real): sequence of real; extensionmethod; +/// +function Cycle(Self: sequence of T): sequence of T; extensionmethod; +//>> XXX - ! # XXX +AdjGroupClass = class +private +cur: T; +enm: IEnumerator; +fin: boolean; +public +begin +enm := a.GetEnumerator(); +fin := enm.MoveNext; +if fin then +cur := enm.Current; +end; +function TakeGroup: sequence of T; +begin +yield cur; +fin := enm.movenext; +while fin do +begin +if enm.current = cur then +yield enm.current +else +begin +cur := enm.Current; +break; +end; +fin := enm.movenext; +end; +end; +end; +//>> Print # Print for elementary types +function Print(Self: integer): integer; extensionmethod; +function Print(Self: real): real; extensionmethod; +function Print(Self: char): char; extensionmethod; +function Print(Self: boolean): boolean; extensionmethod; +function Print(Self: BigInteger): BigInteger; extensionmethod; +function Println(Self: integer): integer; extensionmethod; +function Println(Self: real): real; extensionmethod; +function Println(Self: char): char; extensionmethod; +function Println(Self: boolean): boolean; extensionmethod; +function Println(Self: BigInteger): BigInteger; extensionmethod; +//>> sequence of T # Extension methods for sequence of T +/// , delim +function Print(Self: sequence of T; delim: string): sequence of T; extensionmethod; +/// , +function Print(Self: sequence of T): sequence of T; extensionmethod; +/// , delim , +function Println(Self: sequence of T; delim: string): sequence of T; extensionmethod; +/// , , +function Println(Self: sequence of T): sequence of T; extensionmethod; +/// +function WriteLines(Self: sequence of string; fname: string): sequence of string; extensionmethod; +/// , +function PrintLines(Self: sequence of T): sequence of T; extensionmethod; +/// , map +function PrintLines(Self: sequence of T; map: T->T1): sequence of T; extensionmethod; +/// , , delim +function JoinIntoString(Self: sequence of T; delim: string): string; extensionmethod; +/// , , +function JoinIntoString(Self: sequence of T): string; extensionmethod; +/// +procedure ForEach(Self: sequence of T; action: T -> ()); extensionmethod; +/// , +procedure ForEach(Self: sequence of T; action: (T,integer) -> ()); extensionmethod; +/// +function Sorted(Self: sequence of T): sequence of T; extensionmethod; +/// +function SortedDescending(Self: sequence of T): sequence of T; extensionmethod; +/// +function Order(Self: sequence of T): sequence of T; extensionmethod; +/// +function OrderDescending(Self: sequence of T): sequence of T; extensionmethod; +/// HashSet +function ToHashSet(Self: sequence of T): HashSet; extensionmethod; +/// SortedSet +function ToSortedSet(Self: sequence of T): SortedSet; extensionmethod; +/// LinkedList +function ToLinkedList(Self: sequence of T): LinkedList; extensionmethod; +/// +function MinBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// +function MaxBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// +function LastMinBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// +function LastMaxBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// count +function TakeLast(Self: sequence of T; count: integer): sequence of T; extensionmethod; +/// count +function SkipLast(self: sequence of T; count: integer := 1): sequence of T; extensionmethod; +/// +function Cartesian(Self: sequence of T; b: sequence of T1): sequence of (T, T1); extensionmethod; +/// +function Cartesian(Self: sequence of T; b: sequence of T1; func: (T,T1)->T2): sequence of T2; extensionmethod; +/// ind +function SplitAt(Self: sequence of T; ind: integer): (sequence of T, sequence of T); extensionmethod; +/// +function Partition(Self: sequence of T; cond: T->boolean): (sequence of T, sequence of T); extensionmethod; +/// , +function Partition(Self: sequence of T; cond: (T,integer)->boolean): (sequence of T, sequence of T); extensionmethod; +/// +function ZipTuple(Self: sequence of T; a: sequence of T1): sequence of (T, T1); extensionmethod; +/// +function ZipTuple(Self: sequence of T; a: sequence of T1; b: sequence of T2): sequence of (T, T1, T2); extensionmethod; +/// +function ZipTuple(Self: sequence of T; a: sequence of T1; b: sequence of T2; c: sequence of T3): sequence of (T, T1, T2, T3); extensionmethod; +/// +function UnZipTuple(Self: sequence of (T, T1)): (sequence of T, sequence of T1); extensionmethod; +/// +function UnZipTuple(Self: sequence of (T, T1, T2)): (sequence of T, sequence of T1, sequence of T2); extensionmethod; +/// +function UnZipTuple(Self: sequence of (T, T1, T2, T3)): (sequence of T, sequence of T1, sequence of T2, sequence of T3); extensionmethod; +/// +function Interleave(Self: sequence of T; a: sequence of T): sequence of T; extensionmethod; +/// +function Interleave(Self: sequence of T; a, b: sequence of T): sequence of T; extensionmethod; +/// +function Interleave(Self: sequence of T; a, b, c: sequence of T): sequence of T; extensionmethod; +/// +function Numerate(Self: sequence of T): sequence of (integer, T); extensionmethod; +/// from +function Numerate(Self: sequence of T; from: integer): sequence of (integer, T); extensionmethod; +/// +function Tabulate(Self: sequence of T; F: T->T1): sequence of (T, T1); extensionmethod; +/// +function Pairwise(Self: sequence of T): sequence of (T, T); extensionmethod; +/// , func +function Pairwise(Self: sequence of T; func: (T,T)->Res): sequence of Res; extensionmethod; +/// size +function Batch(Self: sequence of T; size: integer): sequence of sequence of T; extensionmethod; +/// size +function Batch(Self: sequence of T; size: integer; proj: Func, Res>): sequence of Res; extensionmethod; +/// from step > 0 +function Slice(Self: sequence of T; from, step: integer): sequence of T; extensionmethod; +/// from step > 0 count +function Slice(Self: sequence of T; from, step, count: integer): sequence of T; extensionmethod; +/// +function Incremental(Self: sequence of integer): sequence of integer; extensionmethod; +/// +function Incremental(Self: array of integer): sequence of integer; extensionmethod; +/// +function Incremental(Self: List): sequence of integer; extensionmethod; +/// +function Incremental(Self: LinkedList): sequence of integer; extensionmethod; +/// +function Incremental(Self: sequence of real): sequence of real; extensionmethod; +/// +function Incremental(Self: array of real): sequence of real; extensionmethod; +/// +function Incremental(Self: List): sequence of real; extensionmethod; +/// +function Incremental(Self: LinkedList): sequence of real; extensionmethod; +/// . func +function Incremental(Self: sequence of T; func: (T,T)->T1): sequence of T1; extensionmethod; +/// . func +function Incremental(Self: sequence of T; func: (T,T,integer)->T1): sequence of T1; extensionmethod; +/// , +function AdjacentGroup(Self: sequence of T): sequence of array of T; extensionmethod; +//>> List # Extension methods for List T +/// +function Shuffle(Self: List): List; extensionmethod; +/// . , -1 +function AdjacentFind(Self: IList; start: integer := 0): integer; extensionmethod; +/// , eq, . , -1 +function AdjacentFind(Self: IList; eq: (T,T)->boolean; start: integer := 0): integer; extensionmethod; +/// index +function IndexMin(Self: IList; index: integer := 0): integer; extensionmethod;where T: IComparable; +/// index +function IndexMax(self: IList; index: integer := 0): integer; extensionmethod;where T: System.IComparable; +/// +function LastIndexMin(Self: IList): integer; extensionmethod;where T: System.IComparable; +/// [0,index-1] +function LastIndexMin(Self: IList; index: integer): integer; extensionmethod;where T: System.IComparable; +/// +function LastIndexMax(Self: IList): integer; extensionmethod;where T: System.IComparable; +/// [0,index-1] +function LastIndexMax(Self: IList; index: integer): integer; extensionmethod;where T: System.IComparable; +/// +procedure Replace(Self: IList; oldValue, newValue: T); extensionmethod; +/// +procedure Transform(Self: IList; f: T->T); extensionmethod; +/// , +procedure Fill(Self: IList; f: integer->T); extensionmethod; +/// from step +function Slice(Self: List; from, step: integer): List; extensionmethod; +/// from step count +function Slice(Self: List; from, step, count: integer): List; extensionmethod; +/// . , +function RemoveLast(Self: List): List; extensionmethod; +procedure CorrectFromTo(situation: integer; Len: integer; var from, to: integer; step: integer); +//>> array [,] of T # Extension methods for array [,] of T +/// +function RowCount(Self: array [,] of T): integer; extensionmethod; +/// +function ColCount(Self: array [,] of T): integer; extensionmethod; +/// , w - +function Print(Self: array [,] of T; w: integer := 4): array [,] of T; extensionmethod; +/// :w:f +function Print(Self: array [,] of real; w: integer := 7; f: integer := 2): array [,] of real; extensionmethod; +/// , w - +function Println(Self: array [,] of T; w: integer := 4): array [,] of T; extensionmethod; +/// :w:f +function Println(Self: array [,] of real; w: integer := 7; f: integer := 2): array [,] of real; extensionmethod; +/// k- +function Row(Self: array [,] of T; k: integer): array of T; extensionmethod; +/// k- +function Col(Self: array [,] of T; k: integer): array of T; extensionmethod; +/// k- +function RowSeq(Self: array [,] of T; k: integer): sequence of T; extensionmethod; +/// k- +function ColSeq(Self: array [,] of T; k: integer): sequence of T; extensionmethod; +/// +function Rows(Self: array [,] of T): sequence of sequence of T; extensionmethod; +/// +function Cols(Self: array [,] of T): sequence of sequence of T; extensionmethod; +/// k1 k2 +procedure SwapRows(Self: array [,] of T; k1, k2: integer); extensionmethod; +/// k1 k2 +procedure SwapCols(Self: array [,] of T; k1, k2: integer); extensionmethod; +/// k +procedure SetRow(Self: array [,] of T; k: integer; a: array of T); extensionmethod; +/// k +procedure SetRow(Self: array [,] of T; k: integer; a: sequence of T); extensionmethod := Self.SetRow(k,a.ToArray); +/// k +procedure SetCol(Self: array [,] of T; k: integer; a: array of T); extensionmethod; +/// k +procedure SetCol(Self: array [,] of T; k: integer; a: sequence of T); extensionmethod := Self.SetCol(k,a.ToArray); +/// (a[i,j],i,j) +function ElementsWithIndexes(Self: array [,] of T): sequence of (T, integer, integer); extensionmethod; +/// +function ElementsByRow(Self: array [,] of T): sequence of T; extensionmethod; +/// +function ElementsByCol(Self: array [,] of T): sequence of T; extensionmethod; +/// +function ConvertAll(Self: array [,] of T; converter: T->T1): array [,] of T1; extensionmethod; +/// +procedure Transform(Self: array [,] of T; f: T->T); extensionmethod; +/// , +procedure Fill(Self: array [,] of T; f: (integer,integer) ->T); extensionmethod; +//>> YYY - ! # YYY +function Matr(m,n: integer; params data: array of T): array [,] of T; +function MatrRandom(m: integer; n: integer; a, b: integer): array [,] of integer; +function MatrRandomInteger(m: integer; n: integer; a, b: integer): array [,] of integer; +function MatrRandomReal(m: integer; n: integer; a, b: real): array [,] of real; +function MatrFill(m, n: integer; x: T): array [,] of T; +function MatrGen(m, n: integer; gen: (integer,integer)->T): array [,] of T; +function Transpose(a: array [,] of T): array [,] of T; +function ReadMatrInteger(m, n: integer): array [,] of integer; +function ReadMatrReal(m, n: integer): array [,] of real; +//>> array of T # Extension methods for array of T +/// +function Shuffle(Self: array of T): array of T; extensionmethod; +{/// . , -1 +function AdjacentFind(Self: array of T; start: integer := 0): integer; extensionmethod; +/// , eq, . , -1 +function AdjacentFind(Self: array of T; eq: (T,T)->boolean; start: integer := 0): integer; extensionmethod; +/// +function Min(Self: array of T): T; extensionmethod;where T: System.IComparable; +/// +function Max(Self: array of T): T; extensionmethod;where T: System.IComparable; +/// +function Min(Self: array of integer): integer; extensionmethod; +/// +function Min(Self: array of real): real; extensionmethod; +/// +function Max(Self: array of integer): integer; extensionmethod; +/// +function Max(Self: array of real): real; extensionmethod; +{/// index +function IndexMin(Self: array of T; index: integer := 0): integer; extensionmethod; where T: System.IComparable; +/// index +function IndexMax(self: array of T; index: integer := 0): integer; extensionmethod; where T: System.IComparable; +/// +function LastIndexMin(Self: array of T): integer; extensionmethod; where T: System.IComparable; +/// [0,index] +function LastIndexMin(Self: array of T; index: integer): integer; extensionmethod; where T: System.IComparable; +/// +function LastIndexMax(Self: array of T): integer; extensionmethod; where T: System.IComparable; +/// [0,index] +function LastIndexMax(Self: array of T; index: integer): integer; extensionmethod; where T: System.IComparable; +/// +procedure Replace(Self: array of T; oldValue,newValue: T); extensionmethod; +/// +procedure Transform(self: array of T; f: T -> T); extensionmethod; +/// , +procedure Fill(Self: array of T; f: integer -> T); extensionmethod; +/// +function BinarySearch(self: array of T; x: T): integer; extensionmethod; +/// +function ConvertAll(self: array of T; converter: T->T1): array of T1; extensionmethod; +/// , . , +function Find(self: array of T; p: T->boolean): T; extensionmethod; +/// , . , -1 +function FindIndex(self: array of T; p: T->boolean): integer; extensionmethod; +/// , , start. , -1 +function FindIndex(self: array of T; start: integer; p: T->boolean): integer; extensionmethod; +/// , +function FindAll(self: array of T; p: T->boolean): array of T; extensionmethod; +/// , . , +function FindLast(self: array of T; p: T->boolean): T; extensionmethod; +/// , . , +function FindLastIndex(self: array of T; p: T->boolean): integer; extensionmethod; +/// , , start. , +function FindLastIndex(self: array of T; start: integer; p: T->boolean): integer; extensionmethod; +/// -1 +function IndexOf(self: array of T; x: T): integer; extensionmethod; +/// start -1 +function IndexOf(self: array of T; x: T; start: integer): integer; extensionmethod; +/// -1 +function LastIndexOf(self: array of T; x: T): integer; extensionmethod; +/// start -1 +function LastIndexOf(self: array of T; x: T; start: integer): integer; extensionmethod; +/// +procedure Sort(self: array of T); extensionmethod; +/// , cmp +procedure Sort(self: array of T; cmp: (T,T) ->integer); extensionmethod; +/// +function High(self: System.Array); extensionmethod := High(Self); +/// +function Low(self: System.Array); extensionmethod := Low(Self); +/// +function Indexes(Self: array of T): sequence of integer; extensionmethod := Range(0, Self.Length - 1); +/// , +function IndexesOf(Self: array of T; cond: T->boolean): sequence of integer; extensionmethod; +/// , +function IndexesOf(Self: array of T; cond: (T,integer) ->boolean): sequence of integer; extensionmethod; +/// from step +function Slice(Self: array of T; from, step: integer): array of T; extensionmethod; +/// from step count +function Slice(Self: array of T; from, step, count: integer): array of T; extensionmethod; +//>> integer # Extension methods for integer +/// +function Sqrt(Self: integer): real; extensionmethod; +/// +function Sqr(Self: integer): integer; extensionmethod; +/// True +function Between(Self: integer; a, b: integer): boolean; extensionmethod; +/// True +function InRange(Self: integer; a,b: integer): boolean; extensionmethod; +/// , +function IsEven(Self: integer): boolean; extensionmethod; +/// , +function IsOdd(Self: integer): boolean; extensionmethod; +/// 1 +function Range(Self: integer): sequence of integer; extensionmethod; +/// n +function To(Self: integer; n: integer): sequence of integer; extensionmethod; +/// n +function Downto(Self: integer; n: integer): sequence of integer; extensionmethod; +/// 0,1,...n-1 +function Times(Self: integer): sequence of integer; extensionmethod; +//>> BigInteger # Extension methods for BigInteger +/// +function Sqrt(Self: BigInteger): real; extensionmethod; +//>> real # Extension methods for real +/// True +function Between(Self: real; a, b: real): boolean; extensionmethod; +/// True +function InRange(Self: real; a,b: real): boolean; extensionmethod; +/// +function Sqrt(Self: real): real; extensionmethod; +/// +function Sqr(Self: real): real; extensionmethod; +/// , +function Round(Self: real): integer; extensionmethod; +/// x, digits +function Round(Self: real; digits: integer): real; extensionmethod; +/// , +function RoundBigInteger(Self: real): BigInteger; extensionmethod; +/// +function Trunc(Self: real): integer; extensionmethod; +/// +function TruncBigInteger(Self: real): BigInteger; extensionmethod; +/// , frac +function ToString(Self: real; frac: integer): string; extensionmethod; +//>> char # Extension methods for char +/// True +function Between(Self: char; a, b: char): boolean; extensionmethod; +/// True +function InRange(Self: char; a,b: char): boolean; extensionmethod; +/// +function Pred(Self: char); extensionmethod := PABCSystem.Pred(Self); +/// +function Succ(Self: char); extensionmethod := PABCSystem.Succ(Self); +/// Unicode +function Code(Self: char): integer; extensionmethod := word(Self); +/// +function IsDigit(Self: char); extensionmethod := char.IsDigit(Self); +/// +function IsLetter(Self: char): boolean; extensionmethod; +/// +function IsLower(Self: char): boolean; extensionmethod; +/// +function IsUpper(Self: char): boolean; extensionmethod; +/// +function ToDigit(Self: char): integer; extensionmethod; +/// +function ToLower(Self: char): char; extensionmethod; +/// +function ToUpper(Self: char): char; extensionmethod; +//>> string # Extension methods for string +/// True +function Between(Self: string; a, b: string): boolean; extensionmethod; +/// True +function InRange(Self: string; a,b: string): boolean; extensionmethod; +/// from from +function ReadInteger(Self: string; var from: integer): integer; extensionmethod; +/// from from +function ReadReal(Self: string; var from: integer): real; extensionmethod; +/// from from +function ReadWord(Self: string; var from: integer): string; extensionmethod; +/// +function ToInteger(Self: string): integer; extensionmethod; +/// BigInteger +function ToBigInteger(Self: string): BigInteger; extensionmethod; +/// +function ToReal(Self: string): real; extensionmethod; +/// +function ToWords(Self: string; params delim: array of char): array of string; extensionmethod; +/// +function ToIntegers(Self: string): array of integer; extensionmethod; +/// +function ToReals(Self: string): array of real; extensionmethod; +/// +function Inverse(Self: string): string; extensionmethod; +/// +function RegexReplace(Self: string; reg, repl: string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +/// +function RegexReplace(Self: string; reg: string; repl: Match->string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +/// Match +function Matches(Self: string; reg: string; options: RegexOptions := RegexOptions.None): sequence of Match; extensionmethod; +/// +function MatchValue(Self: string; reg: string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +/// +function MatchValues(Self: string; reg: string; options: RegexOptions := RegexOptions.None): sequence of string; extensionmethod; +/// +function IsMatch(Self: string; reg: string; options: RegexOptions := RegexOptions.None): boolean; extensionmethod := Regex.IsMatch(Self, reg, options); +/// +function Remove(Self: string; params targets: array of string): string; extensionmethod; +/// , length +function Right(Self: string; length: integer): string; extensionmethod; +/// , length +function Left(Self: string; length: integer): string; extensionmethod; +/// from step +function Slice(Self: string; from, step: integer): string; extensionmethod; +/// from step count +function Slice(Self: string; from, step, count: integer): string; extensionmethod; +//>> Func # Extension methods for Func +/// +function Compose(Self: T2->TResult; composer: T1->T2): T1->TResult; extensionmethod; +//>> Complex # Extension methods for Complex +/// +function Conjugate(Self: Complex): Complex; extensionmethod; +//>> IDictionary # Extension methods for IDictionary +/// , , , +function Get(Self: IDictionary; K: Key): Value; extensionmethod; +//>> # Subroutines for typed files +/// +function OpenBinary(fname: string): file of T; +/// +function CreateBinary(fname: string): file of T; +/// +function OpenFile(fname: string): file of T; +/// +function CreateFile(fname: string): file of T; +/// +function OpenFileInteger(fname: string): file of integer; +/// +function OpenFileReal(fname: string): file of real; +/// +function CreateFileInteger(fname: string): file of integer; +/// +function CreateFileReal(fname: string): file of real; +/// , +procedure WriteElements(fname: string; ss: sequence of T); +//>> # Extension methods for typed files +/// n +function Seek(Self: file of T; n: int64): file of T; extensionmethod; +/// +function Read(Self: file of T): T; extensionmethod; +/// +function Read2(Self: file of T): (T,T); extensionmethod; +/// +function Read3(Self: file of T): (T,T,T); extensionmethod; +/// +function ReadElements(Self: file of T): sequence of T; extensionmethod; +/// , +function ReadElements(fname: string): sequence of T; +/// +procedure Write(Self: file of T; params vals: array of T); extensionmethod; diff --git a/PABCNetHelp/PABCSystemDocGen/PABCdoc.pas b/PABCNetHelp/PABCSystemDocGen/PABCdoc.pas new file mode 100644 index 000000000..713ebd545 --- /dev/null +++ b/PABCNetHelp/PABCSystemDocGen/PABCdoc.pas @@ -0,0 +1,1456 @@ +//>> # Standard constants +/// shortint +MaxShortInt = shortint.MaxValue; +/// byte +MaxByte = byte.MaxValue; +/// smallint +MaxSmallInt = smallint.MaxValue; +/// word +MaxWord = word.MaxValue; +/// longword +MaxLongWord = longword.MaxValue; +/// int64 +MaxInt64 = int64.MaxValue; +/// uint64 +MaxUInt64 = uint64.MaxValue; +/// double +MaxDouble = real.MaxValue; +/// double +MinDouble = real.Epsilon; +/// real +MaxReal = real.MaxValue; +/// real +MinReal = real.Epsilon; +/// single +MaxSingle = single.MaxValue; +/// single +MinSingle = single.Epsilon; +/// integer +MaxInt = integer.MaxValue; +/// Pi +Pi = 3.141592653589793; +/// E +E = 2.718281828459045; +/// +NewLine = System.Environment.NewLine; +//>> # Standard types +/// +Object = System.Object; +/// +Exception = System.Exception; +/// double = real +double = System.Double; +/// longint = integer +longint = System.Int32; +/// cardinal = longword +cardinal = System.UInt32; +/// 128- +decimal = System.Decimal; +/// +BigInteger = System.Numerics.BigInteger; +/// +DateTime = System.DateTime; +/// +Complex = System.Numerics.Complex; +/// +Tuple = System.Tuple; +/// +List = System.Collections.Generic.List; +/// IComparer +Comparer = System.Collections.Generic.Comparer; +/// IComparer +IComparable = System.IComparable; +/// , - +HashSet = System.Collections.Generic.HashSet; +/// , +SortedSet = System.Collections.Generic.SortedSet; +/// ( -), - +Dictionary = System.Collections.Generic.Dictionary; +/// , +SortedDictionary = System.Collections.Generic.SortedDictionary; +/// ( -), +SortedList = System.Collections.Generic.SortedList; +/// - +KeyValuePair = System.Collections.Generic.KeyValuePair; +/// +LinkedList = System.Collections.Generic.LinkedList; +/// +LinkedListNode = System.Collections.Generic.LinkedListNode; +/// - , " - " +Queue = System.Collections.Generic.Queue; +/// - , " - " +Stack = System.Collections.Generic.Stack; +/// +ICollection = System.Collections.Generic.ICollection; +/// +IComparer = System.Collections.Generic.IComparer; +/// - +IDictionary = System.Collections.Generic.IDictionary; +/// , +IEnumerable = System.Collections.Generic.IEnumerable; +/// +IEnumerator = System.Collections.Generic.IEnumerator; +/// +IEqualityComparer = System.Collections.Generic.IEqualityComparer; +/// +IList = System.Collections.Generic.IList; +/// +ISet = System.Collections.Generic.ISet; +/// +StringBuilder = System.Text.StringBuilder; +/// +Encoding = System.Text.Encoding; +/// +Action0 = System.Action; +/// +Action = System.Action; +/// +Action2 = System.Action; +/// +Action3 = System.Action; +/// +Func0 = System.Func; +/// +Func = System.Func; +/// +Func2 = System.Func; +/// +Func3 = System.Func; +/// , +IntFunc = Func; +/// , +RealFunc = Func; +/// , +StringFunc = Func; +/// , boolean +Predicate = System.Predicate; +/// , boolean +Predicate2 = function(x1: T1; x2: T2): boolean; +/// , boolean +Predicate3 = function(x1: T1; x2: T2; x3: T3): boolean; +/// +Regex = System.Text.RegularExpressions.Regex; +/// +Match = System.Text.RegularExpressions.Match; +/// , Regex.Replace +MatchEvaluator = System.Text.RegularExpressions.MatchEvaluator; +/// +MatchCollection = System.Text.RegularExpressions.MatchCollection; +/// +RegexOptions = System.Text.RegularExpressions.RegexOptions; +/// Regex.Match +RegexGroup = System.Text.RegularExpressions.Group; +/// Regex.Match +RegexGroupCollection = System.Text.RegularExpressions.GroupCollection; +/// 255 +ShortString = string[255]; +//>> # Read subroutines +/// a,b,... +procedure Read(a,b,...); +/// a,b,... +procedure Readln(a,b,...); +/// x . False +function TryRead(var x: integer): boolean; +/// integer, +function ReadInteger: integer; +/// real, +function ReadReal: real; +/// char, +function ReadChar: char; +/// string, +function ReadString: string; +/// boolean, +function ReadBoolean: boolean; +/// integer, , +function ReadlnInteger: integer; +/// real, , +function ReadlnReal: real; +/// char, , +function ReadlnChar: char; +/// string, , +function ReadlnString: string; +/// boolean, , +function ReadlnBoolean: boolean; +/// integer, +function ReadInteger2: (integer, integer); +/// real, +function ReadReal2: (real, real); +/// char, +function ReadChar2: (char, char); +/// string, +function ReadString2: (string, string); +/// integer, , +function ReadlnInteger2: (integer, integer); +/// real, , +function ReadlnReal2: (real, real); +/// char, , +function ReadlnChar2: (char, char); +/// string, , +function ReadlnString2: (string, string); +/// integer, +function ReadInteger3: (integer, integer, integer); +/// real, +function ReadReal3: (real, real, real); +/// char, +function ReadChar3: (char, char, char); +/// string, +function ReadString3: (string, string, string); +/// integer, , +function ReadlnInteger3: (integer, integer, integer); +/// real, , +function ReadlnReal3: (real, real, real); +/// char, , +function ReadlnChar3: (char, char, char); +/// string, , +function ReadlnString3: (string, string, string); +/// integer, +function ReadInteger2(prompt: string): (integer, integer); +/// real, +function ReadReal2(prompt: string): (real, real); +/// char, +function ReadChar2(prompt: string): (char, char); +/// string, +function ReadString2(prompt: string): (string, string); +/// integer, , +function ReadlnInteger2(prompt: string): (integer, integer); +/// real, , +function ReadlnReal2(prompt: string): (real, real); +/// char, , +function ReadlnChar2(prompt: string): (char, char); +/// string, , +function ReadlnString2(prompt: string): (string, string); +/// integer, +function ReadInteger3(prompt: string): (integer, integer, integer); +/// real, +function ReadReal3(prompt: string): (real, real, real); +/// char, +function ReadChar3(prompt: string): (char, char, char); +/// string, +function ReadString3(prompt: string): (string, string, string); +/// integer, , +function ReadlnInteger3(prompt: string): (integer, integer, integer); +/// real, , +function ReadlnReal3(prompt: string): (real, real, real); +/// char, , +function ReadlnChar3(prompt: string): (char, char, char); +/// string, , +function ReadlnString3(prompt: string): (string, string, string); +/// integer, +function ReadInteger(prompt: string): integer; +/// real, +function ReadReal(prompt: string): real; +/// char, +function ReadChar(prompt: string): char; +/// string, +function ReadString(prompt: string): string; +/// boolean, +function ReadBoolean(prompt: string): boolean; +/// integer, , +function ReadlnInteger(prompt: string): integer; +/// real, , +function ReadlnReal(prompt: string): real; +/// char, , +function ReadlnChar(prompt: string): char; +/// string, , +function ReadlnString(prompt: string): string; +/// boolean, , +function ReadlnBoolean(prompt: string): boolean; +/// a,b,... f +procedure Read(f: ; a,b,...); +/// a,b,... f +procedure Readln(f: Text; a,b,...); +/// integer, f +function ReadInteger(f: Text): integer; +/// real, f +function ReadReal(f: Text): real; +/// char, f +function ReadChar(f: Text): char; +/// string, f +function ReadString(f: Text): string; +/// boolean, f +function ReadBoolean(f: Text): boolean; +/// integer, f, +function ReadlnInteger(f: Text): integer; +/// real, f, +function ReadlnReal(f: Text): real; +/// char, f, +function ReadlnChar(f: Text): char; +/// string, f, +function ReadlnString(f: Text): string; +/// boolean, f, +function ReadlnBoolean(f: Text): boolean; +//>> # Write subroutines +/// a,b,... +procedure Write(a,b,...); +/// a,b,... +procedure Writeln(a,b,...); +/// a,b,... f +procedure Write(f: ; a,b,...); +/// a,b,... f +procedure Writeln(f: Text; a,b,...); +/// args formatstr +procedure WriteFormat(formatstr: string; params args: array of object); +/// args formatstr +procedure WritelnFormat(formatstr: string; params args: array of object); +/// args f formatstr +procedure WriteFormat(f: Text; formatstr: string; params args: array of object); +/// args f formatstr +procedure WritelnFormat(f: Text; formatstr: string; params args: array of object); +/// a,b,... , +procedure Print(a,b,...); +/// a,b,... f, +procedure Print(f: Text; a,b,...); +/// a,b,... , +procedure Println(a,b,...); +/// a,b,... f, +procedure Println(f: Text; a,b,...); +//>> # Common subroutines for files +/// +procedure Assign(f: ; name: string); +/// +procedure AssignFile(f: ; name: string); +/// +procedure Close(f: ); +/// +procedure CloseFile(f: ); +/// True, +function Eof(f: ): boolean; +/// , +procedure Erase(f: ); +/// , , newname. +procedure Rename(f: ; newname: string); +//>> # Subroutines for text files +/// Windows +procedure Reset(f: Text); +/// +procedure Reset(f: Text; en: Encoding); +/// f name Windows +procedure Reset(f: Text; name: string); +/// f name +procedure Reset(f: Text; name: string; en: Encoding); +/// Windows. - , - +procedure Rewrite(f: Text); +/// . - , - +procedure Rewrite(f: Text; en: Encoding); +/// name f Windows. - , - +procedure Rewrite(f: Text; name: string); +/// f name f . - , - +procedure Rewrite(f: Text; name: string; en: Encoding); +/// Windows +procedure Append(f: Text); +/// +procedure Append(f: Text; en: Encoding); +/// f name Windows +procedure Append(f: Text; name: string); +/// f name +procedure Append(f: Text; name: string; en: Encoding); +/// fname, Windows +function OpenRead(fname: string): Text; +/// fname, +function OpenRead(fname: string; en: Encoding): Text; +/// fname, Windows +function OpenWrite(fname: string): Text; +/// fname, +function OpenWrite(fname: string; en: Encoding): Text; +/// fname, Windows +function OpenAppend(fname: string): Text; +/// fname, +function OpenAppend(fname: string; en: Encoding): Text; +/// True, +function Eoln(f: Text): boolean; +/// , True, +function SeekEof(f: Text): boolean; +/// , True, +function SeekEoln(f: Text): boolean; +/// +procedure Flush(f: Text); +/// , Windows . +function ReadLines(path: string): sequence of string; +/// , . +function ReadLines(path: string; en: Encoding): sequence of string; +/// , Windows , +function ReadAllLines(path: string): array of string; +/// , , +function ReadAllLines(path: string; en: Encoding): array of string; +/// , Windows , +function ReadAllText(path: string): string; +/// , , +function ReadAllText(path: string; en: Encoding): string; +/// , Windows, +procedure WriteLines(path: string; ss: sequence of string); +/// , , +procedure WriteLines(path: string; ss: sequence of string; en: Encoding); +/// , Windows, +procedure WriteAllLines(path: string; ss: array of string); +/// , , +procedure WriteAllLines(path: string; ss: array of string; en: Encoding); +/// , Windows, +procedure WriteAllText(path: string; s: string); +/// , , +procedure WriteAllText(path: string; s: string; en: Encoding); +//>> # Subroutines for binary files +/// . - file of T, file +procedure Reset(f: ); +/// f name . - file of T, file +procedure Reset(f: ; name: string); +/// , . , . - file of T, file +procedure Rewrite(f: ); +/// f name , . - file of T, file +procedure Rewrite(f: ; name: string); +/// , . - file of T, file +procedure Truncate(f: ); +/// +function FilePos(f: ): int64; +/// +function FileSize(f: ): int64; +/// +procedure Seek(f: ; n: int64); +//>> C # System subroutines +/// PascalABC.NET +function PascalABCVersion: string; +/// +function ParamCount: integer; +/// i- +function ParamStr(i: integer): string; +/// +function GetDir: string; +/// +procedure ChDir(s: string); +/// +procedure MkDir(s: string); +/// +procedure RmDir(s: string); +/// . True, +function CreateDir(s: string): boolean; +/// . , False +function DeleteFile(s: string): boolean; +/// +function GetCurrentDir: string; +/// . True, +function RemoveDir(s: string): boolean; +/// name, newname. True, +function RenameFile(name, newname: string): boolean; +/// . True, +function SetCurrentDir(s: string): boolean; +/// name newext +function ChangeFileNameExtension(name, newext: string): string; +/// True, name +function FileExists(name: string): boolean; +/// +procedure Assert(cond: boolean; sourceFile: string := ''; line: integer := 0); +/// +procedure Assert(cond: boolean; message: string; sourceFile: string := ''; line: integer := 0); +/// diskname +function DiskFree(diskname: string): int64; +/// diskname +function DiskSize(diskname: string): int64; +/// disk. disk=0 - , disk=1 - A: , disk=2 - B: .. +function DiskFree(disk: integer): int64; +/// disk. disk=0 - , disk=1 - A: , disk=2 - B: .. +function DiskSize(disk: integer): int64; +/// +function Milliseconds: integer; +/// Milliseconds MillisecondsDelta +function MillisecondsDelta: integer; +/// +procedure Halt; +/// , exitCode +procedure Halt(exitCode: integer); +/// ms +procedure Sleep(ms: integer); +/// .exe- +function GetEXEFileName: string; +/// +function PointerToString(p: pointer): string; +/// filename +procedure Exec(filename: string); +/// filename args +procedure Exec(filename: string; args: string); +/// filename +procedure Execute(filename: string); +/// filename args +procedure Execute(filename: string; args: string); +/// , +function EnumerateFiles(path: string; searchPattern: string := '*.*'): sequence of string; +/// , , +function EnumerateAllFiles(path: string; searchPattern: string := '*.*'): sequence of string; +/// +function EnumerateDirectories(path: string): sequence of string; +/// , +function EnumerateAllDirectories(path: string): sequence of string; +/// sizeof(T) p . T +procedure New(var p: ^T); +/// , p +procedure Dispose(var p: ^T); +//>> # Functions for file names +/// fname +function ExtractFileName(fname: string): string; +/// fname +function ExtractFileExt(fname: string): string; +/// fname +function ExtractFilePath(fname: string): string; +/// fname +function ExtractFileDir(fname: string): string; +/// fname +function ExtractFileDrive(fname: string): string; +/// fname +function ExpandFileName(fname: string): string; +//>> # Math subroutines +/// x +function Sign(x: ): ; +/// x +function Abs(x: ): ; +/// x +function Sin(x: real): real; +/// x +function Sinh(x: real): real; +/// x +function Cos(x: real): real; +/// x +function Cosh(x: real): real; +/// x +function Tan(x: real): real; +/// x +function Tanh(x: real): real; +/// x +function ArcSin(x: real): real; +/// x +function ArcCos(x: real): real; +/// x +function ArcTan(x: real): real; +/// x +function Exp(x: real): real; +/// x +function Ln(x: real): real; +/// x +function Log(x: real): real; +/// x 2 +function Log2(x: real): real; +/// x +function Log10(x: real): real; +/// x base +function LogN(base, x: real): real; +/// x +function Sqrt(x: real): real; +/// x +function Sqr(x: ): ; +/// x y +function Power(x, y: real): real; +/// x n +function Power(x: real; n: integer): real; +/// x y +function Power(x: BigInteger; y: integer): BigInteger; +/// x, . , ( ): Round(2.5)=2, Round(3.5)=4 +function Round(x: real): integer; +/// x, digits +function Round(x: real; digits: integer): real; +/// x, +function RoundBigInteger(x: real): BigInteger; +/// x +function Trunc(x: real): integer; +/// x +function TruncBigInteger(x: real): BigInteger; +/// x +function Int(x: real): real; +/// x +function Frac(x: real): real; +/// <= x +function Floor(x: real): integer; +/// >= x +function Ceil(x: real): integer; +/// +function RadToDeg(x: real): real; +/// +function DegToRad(x: real): real; +/// +procedure Randomize; +/// , seed. seed +procedure Randomize(seed: integer); +/// 0 maxValue-1 +function Random(maxValue: integer): integer; +/// a b +function Random(a, b: integer): integer; +/// [0..1) +function Random: real; +/// 0 maxValue-1 +function Random2(maxValue: integer): (integer, integer); +/// a b +function Random2(a, b: integer): (integer, integer); +/// [0..1) +function Random2: (real, real); +/// 0 maxValue-1 +function Random3(maxValue: integer): (integer, integer, integer); +/// a b +function Random3(a, b: integer): (integer, integer, integer); +/// [0..1) +function Random3: (real, real, real); +/// a,b +function Max(a: , b: ): ; +/// a,b +function Min(a: , b: ): ; +/// True, i , False +function Odd(i: ): boolean; +//>> # Functions for Complex numbers +/// re im +function Cplx(re, im: real): Complex; +/// +function CplxFromPolar(magnitude, phase: real): Complex; +/// +function Sqrt(c: Complex): Complex; +/// +function Abs(c: Complex): Complex; +/// +function Conjugate(c: Complex): Complex; +/// +function Cos(c: Complex): Complex; +/// +function Exp(c: Complex): Complex; +/// +function Ln(c: Complex): Complex; +/// +function Log(c: Complex): Complex; +/// +function Log10(c: Complex): Complex; +/// +function Power(c, power: Complex): Complex; +/// +function Sin(c: Complex): Complex; +//>> # Subroutines for set of T +/// element s +procedure Include(var s: set of T; element: T); +/// element s +procedure Exclude(var s: set of T; element: T); +//>> # Subroutines for char +/// c 1 +procedure Inc(var c: char); +/// c n +procedure Inc(var c: char; n: integer); +/// c 1 +procedure Dec(var c: char); +/// c n +procedure Dec(var c: char; n: integer); +/// x +function Pred(x: char): char; +/// x +function Succ(x: char): char; +/// Windows +function ChrAnsi(a: byte): char; +/// Windows +function OrdAnsi(a: char): byte; +/// Unicode +function Chr(a: word): char; +/// Unicode +function Ord(a: char): word; +/// Unicode +function ChrUnicode(a: word): char; +/// Unicode +function OrdUnicode(a: char): word; +/// +function UpperCase(ch: char): char; +/// +function LowerCase(ch: char): char; +/// +function UpCase(ch: char): char; +/// +function LowCase(ch: char): char; +//>> # Subroutines for string +/// i s +procedure Str(i: ; var s: string); +/// r s +procedure Str(r: real; var s: string); +/// r s +procedure Str(r: single; var s: string); +/// subs s. , 0 +function Pos(subs, s: string; from: integer := 1): integer; +/// subs s from. , 0 +function PosEx(subs, s: string; from: integer := 1): integer; +/// subs s. , 0 +function LastPos(subs, s: string): integer; +/// subs s from. , 0 +function LastPos(subs, s: string; from: integer): integer; +/// +function Length(s: string): integer; +/// s n +procedure SetLength(var s: string; n: integer); +/// source s index +procedure Insert(source: string; var s: string; index: integer); +/// s count index +procedure Delete(var s: string; index, count: integer); +/// s count index +function Copy(s: string; index, count: integer): string; +/// , s1,s2,... +function Concat(s1,s2,...): string; +/// , s1 s2 +function Concat(s1, s2: string): string; +/// +function LowerCase(s: string): string; +/// +function UpperCase(s: string): string; +/// , count ch +function StringOfChar(ch: char; count: integer): string; +/// +function ReverseString(s: string): string; +/// length index +function ReverseString(s: string; index,length: integer): string; +/// . < 0 s1 0 s1>s2 = 0 s1=s2 +function CompareStr(s1, s2: string): integer; +/// count s +function LeftStr(s: string; count: integer): string; +/// count s +function RightStr(s: string; count: integer): string; +/// +function Trim(s: string): string; +/// +function TrimLeft(s: string): string; +/// +function TrimRight(s: string): string; +/// +function StrToInt(s: string): integer; +/// +function StrToInt64(s: string): int64; +/// +function StrToFloat(s: string): real; +/// +function StrToReal(s: string): real; +/// s value. False +function TryStrToInt(s: string; var value: integer): boolean; +/// s value. False +function TryStrToInt64(s: string; var value: int64): boolean; +/// s value. False +function TryStrToFloat(s: string; var value: real): boolean; +/// s value. False +function TryStrToFloat(s: string; var value: single): boolean; +/// s value. False +function TryStrToReal(s: string; var value: real): boolean; +/// s value. False +function TryStrToSingle(s: string; var value: single): boolean; +/// from from +function ReadIntegerFromString(s: string; var from: integer): integer; +/// from from +function ReadRealFromString(s: string; var from: integer): real; +/// from from +function ReadWordFromString(s: string; var from: integer): string; +/// True False +function StringIsEmpty(s: string; var from: integer): boolean; +/// from from . True False +function TryReadIntegerFromString(s: string; var from: integer; var res: integer): boolean; +/// from from . True False +function TryReadRealFromString(s: string; var from: integer; var res: real): boolean; +/// s value. , err=0, err>0 +procedure Val(s: string; var value: ; var err: integer); +/// +function IntToStr(a: integer): string; +/// +function IntToStr(a: int64): string; +/// +function FloatToStr(a: real): string; +/// , +function Format(formatstring: string; params pars: array of object): string; +//>> # Common subroutines +/// i 1 +procedure Inc(var i: integer); +/// i n +procedure Inc(var i: integer; n: integer); +/// i 1 +procedure Dec(var i: integer); +/// i n +procedure Dec(var i: integer; n: integer); +/// 1 +procedure Inc(var e: ); +/// n +procedure Inc(var e: ; n: integer); +/// 1 +procedure Dec(var e: ); +/// n +procedure Dec(var e: ; n: integer); +/// a +function Ord(a: ): ; +/// a +function Ord(a: ): integer; +/// x +function Succ(x: ): ; +/// x +function Succ(x: ): ; +/// x +function Pred(x: ): ; +/// x +function Pred(x: ): ; +/// +procedure Swap(var a, b: T); +/// True, +function Eoln: boolean; +/// True, +function Eof: boolean; +//>> # Subroutines for array of T +/// 0 +function Low(a: array of T): integer; +/// +function High(a: array of T): integer; +/// +function Length(a: array of T): integer; +/// dim +function Length(a: array of T; dim: integer): integer; +/// . +procedure SetLength(var a: array of T); +/// n- . +procedure SetLength(var a: array of T; n1,n2,...: integer); +/// +function Copy(a: array of T): array of T; +/// +procedure Sort(a: array of T); +/// , cmp +procedure Sort(a: array of T; cmp: (T,T)->integer); +/// , less +procedure Sort(a: array of T; less: (T,T)->boolean); +/// +procedure Sort(l: List); +/// , cmp +procedure Sort(l: List; cmp: (T,T)->integer); +/// , less +procedure Sort(l: List; less: (T,T)->boolean); +/// +procedure Reverse(a: array of T); +/// count, index +procedure Reverse(a: array of T; index, count: integer); +/// +procedure Reverse(a: List); +/// count, index +procedure Reverse(a: List; index, count: integer); +/// +procedure Shuffle(a: array of T); +/// +procedure Shuffle(l: List); +//>> # Subroutines for sequence generation +/// a b +function Range(a, b: integer): sequence of integer; +/// c1 c2 +function Range(c1, c2: char): sequence of char; +/// [a,b] n ( Partition) +function Range(a, b: real; n: integer): sequence of real; +/// [a,b] n +function Partition(a, b: real; n: integer): sequence of real; +/// a b step +function Range(a, b, step: integer): sequence of integer; +/// +function Seq(params a: array of T): sequence of T; +/// n +function SeqRandom(n: integer := 10; a: integer := 0; b: integer := 100): sequence of integer; +/// n +function SeqRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): sequence of integer; +/// n +function SeqRandomReal(n: integer := 10; a: real := 0; b: real := 10): sequence of real; +/// count , f(i) +function SeqGen(count: integer; f: integer->T): sequence of T; +/// count , f(i), i=from +function SeqGen(count: integer; f: integer->T; from: integer): sequence of T; +/// count , first, next +function SeqGen(count: integer; first: T; next: T->T): sequence of T; +/// count , first second, next +function SeqGen(count: integer; first, second: T; next: (T,T) ->T): sequence of T; +/// first, next pred +function SeqWhile(first: T; next: T->T; pred: T->boolean): sequence of T; +/// , first second, next pred +function SeqWhile(first, second: T; next: (T,T) ->T; pred: T->boolean): sequence of T; +/// count x +function SeqFill(count: integer; x: T): sequence of T; +/// n , +function ReadSeqInteger(n: integer): sequence of integer; +/// n , +function ReadSeqReal(n: integer): sequence of real; +/// n , +function ReadSeqString(n: integer): sequence of string; +/// n , +function ReadSeqInteger(prompt: string; n: integer): sequence of integer; +/// n , +function ReadSeqReal(prompt: string; n: integer): sequence of real; +/// n , +function ReadSeqString(prompt: string; n: integer): sequence of string; +/// , +function ReadSeqIntegerWhile(cond: integer->boolean): sequence of integer; +/// , +function ReadSeqRealWhile(cond: real->boolean): sequence of real; +/// , +function ReadSeqStringWhile(cond: string->boolean): sequence of string; +/// , +function ReadSeqIntegerWhile(prompt: string; cond: integer->boolean): sequence of integer; +/// , +function ReadSeqRealWhile(prompt: string; cond: real->boolean): sequence of real; +/// , +function ReadSeqStringWhile(prompt: string; cond: string->boolean): sequence of string; +//>> # Subroutines for array of T generation +/// , +function Arr(params a: array of T): array of T; +/// , +function Arr(a: sequence of T): array of T; +/// n, +function ArrRandom(n: integer := 10; a: integer := 0; b: integer := 100): array of integer; +/// n, +function ArrRandomInteger(n: integer := 10; a: integer := 0; b: integer := 100): array of integer; +/// n, +function ArrRandomReal(n: integer := 10; a: real := 0; b: real := 10): array of real; +/// count , gen(i) +function ArrGen(count: integer; gen: integer->T): array of T; +/// count , gen(i), i=from +function ArrGen(count: integer; gen: integer->T; from: integer): array of T; +/// count , first, next +function ArrGen(count: integer; first: T; next: T->T): array of T; +/// count , first second, next +function ArrGen(count: integer; first, second: T; next: (T,T) ->T): array of T; +/// count x +function ArrFill(count: integer; x: T): array of T; +/// n , +function ReadArrInteger(n: integer): array of integer; +/// n , +function ReadArrReal(n: integer): array of real; +/// n , +function ReadArrString(n: integer): array of string; +/// n , +function ReadArrInteger(prompt: string; n: integer): array of integer; +/// n , +function ReadArrReal(prompt: string; n: integer): array of real; +/// n , +function ReadArrString(prompt: string; n: integer): array of string; +//>> # Subroutines for matrixes +/// m x n, +function Matr(m,n: integer; params data: array of T): array [,] of T; +/// m x n, +function MatrRandom(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +/// m x n, +function MatrRandomInteger(m: integer := 5; n: integer := 5; a: integer := 0; b: integer := 100): array [,] of integer; +/// m x n, +function MatrRandomReal(m: integer := 5; n: integer := 5; a: real := 0; b: real := 10): array [,] of real; +/// m x n, x +function MatrFill(m, n: integer; x: T): array [,] of T; +/// m x n, x +function MatrGen(m, n: integer; gen: (integer,integer)->T): array [,] of T; +/// +function Transpose(a: array [,] of T): array [,] of T; +/// m n , +function ReadMatrInteger(m, n: integer): array [,] of integer; +/// m n , +function ReadMatrReal(m, n: integer): array [,] of real; +//>> # Subroutines for tuple generation +/// +function Rec(x1: T1, x2: T2,...): (T1,T2,...); +//>> Lst, LLst, HSet, SSet, Dict, KV # Short functions Lst, HSet, SSet, Dict, KV +/// , +function Lst(params a: array of T): List; +/// , +function Lst(a: sequence of T): List; +/// , +function LLst(params a: array of T): LinkedList; +/// , +function LLst(a: sequence of T): LinkedList; +/// , +function HSet(params a: array of T): HashSet; +/// , +function HSet(a: sequence of T): HashSet; +/// , +function SSet(params a: array of T): SortedSet; +/// , +function SSet(a: sequence of T): SortedSet; +/// (, ) +function Dict(params pairs: array of KeyValuePair): Dictionary; +/// (, ) +function Dict(params pairs: array of (TKey, TVal)): Dictionary; +/// (, ) +function KV(key: TKey; value: TVal): KeyValuePair; +//>> # Infinite sequences +/// 1 +function Step(Self: integer): sequence of integer; extensionmethod; +/// step +function Step(Self: integer; step: integer): sequence of integer; extensionmethod; +/// step +function Step(Self: real; step: real): sequence of real; extensionmethod; +/// +function Cycle(Self: sequence of T): sequence of T; extensionmethod; +//>> XXX - ! # XXX +AdjGroupClass = class +private +cur: T; +enm: IEnumerator; +fin: boolean; +public +begin +enm := a.GetEnumerator(); +fin := enm.MoveNext; +if fin then +cur := enm.Current; +end; +function TakeGroup: sequence of T; +begin +yield cur; +fin := enm.movenext; +while fin do +begin +if enm.current = cur then +yield enm.current +else +begin +cur := enm.Current; +break; +end; +fin := enm.movenext; +end; +end; +end; +//>> Print # Print for elementary types +function Print(Self: integer): integer; extensionmethod; +function Print(Self: real): real; extensionmethod; +function Print(Self: char): char; extensionmethod; +function Print(Self: boolean): boolean; extensionmethod; +function Print(Self: BigInteger): BigInteger; extensionmethod; +function Println(Self: integer): integer; extensionmethod; +function Println(Self: real): real; extensionmethod; +function Println(Self: char): char; extensionmethod; +function Println(Self: boolean): boolean; extensionmethod; +function Println(Self: BigInteger): BigInteger; extensionmethod; +//>> sequence of T # Extension methods for sequence of T +/// , delim +function Print(Self: sequence of T; delim: string): sequence of T; extensionmethod; +/// , +function Print(Self: sequence of T): sequence of T; extensionmethod; +/// , delim , +function Println(Self: sequence of T; delim: string): sequence of T; extensionmethod; +/// , , +function Println(Self: sequence of T): sequence of T; extensionmethod; +/// +function WriteLines(Self: sequence of string; fname: string): sequence of string; extensionmethod; +/// , +function PrintLines(Self: sequence of T): sequence of T; extensionmethod; +/// , map +function PrintLines(Self: sequence of T; map: T->T1): sequence of T; extensionmethod; +/// , , delim +function JoinIntoString(Self: sequence of T; delim: string): string; extensionmethod; +/// , , +function JoinIntoString(Self: sequence of T): string; extensionmethod; +/// +procedure ForEach(Self: sequence of T; action: T -> ()); extensionmethod; +/// , +procedure ForEach(Self: sequence of T; action: (T,integer) -> ()); extensionmethod; +/// +function Sorted(Self: sequence of T): sequence of T; extensionmethod; +/// +function SortedDescending(Self: sequence of T): sequence of T; extensionmethod; +/// +function Order(Self: sequence of T): sequence of T; extensionmethod; +/// +function OrderDescending(Self: sequence of T): sequence of T; extensionmethod; +/// HashSet +function ToHashSet(Self: sequence of T): HashSet; extensionmethod; +/// SortedSet +function ToSortedSet(Self: sequence of T): SortedSet; extensionmethod; +/// LinkedList +function ToLinkedList(Self: sequence of T): LinkedList; extensionmethod; +/// +function MinBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// +function MaxBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// +function LastMinBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// +function LastMaxBy(Self: sequence of T; selector: T->TKey): T; extensionmethod; +/// count +function TakeLast(Self: sequence of T; count: integer): sequence of T; extensionmethod; +/// count +function SkipLast(self: sequence of T; count: integer := 1): sequence of T; extensionmethod; +/// +function Cartesian(Self: sequence of T; b: sequence of T1): sequence of (T, T1); extensionmethod; +/// +function Cartesian(Self: sequence of T; b: sequence of T1; func: (T,T1)->T2): sequence of T2; extensionmethod; +/// ind +function SplitAt(Self: sequence of T; ind: integer): (sequence of T, sequence of T); extensionmethod; +/// +function Partition(Self: sequence of T; cond: T->boolean): (sequence of T, sequence of T); extensionmethod; +/// , +function Partition(Self: sequence of T; cond: (T,integer)->boolean): (sequence of T, sequence of T); extensionmethod; +/// +function ZipTuple(Self: sequence of T; a: sequence of T1): sequence of (T, T1); extensionmethod; +/// +function ZipTuple(Self: sequence of T; a: sequence of T1; b: sequence of T2): sequence of (T, T1, T2); extensionmethod; +/// +function ZipTuple(Self: sequence of T; a: sequence of T1; b: sequence of T2; c: sequence of T3): sequence of (T, T1, T2, T3); extensionmethod; +/// +function UnZipTuple(Self: sequence of (T, T1)): (sequence of T, sequence of T1); extensionmethod; +/// +function UnZipTuple(Self: sequence of (T, T1, T2)): (sequence of T, sequence of T1, sequence of T2); extensionmethod; +/// +function UnZipTuple(Self: sequence of (T, T1, T2, T3)): (sequence of T, sequence of T1, sequence of T2, sequence of T3); extensionmethod; +/// +function Interleave(Self: sequence of T; a: sequence of T): sequence of T; extensionmethod; +/// +function Interleave(Self: sequence of T; a, b: sequence of T): sequence of T; extensionmethod; +/// +function Interleave(Self: sequence of T; a, b, c: sequence of T): sequence of T; extensionmethod; +/// +function Numerate(Self: sequence of T): sequence of (integer, T); extensionmethod; +/// from +function Numerate(Self: sequence of T; from: integer): sequence of (integer, T); extensionmethod; +/// +function Tabulate(Self: sequence of T; F: T->T1): sequence of (T, T1); extensionmethod; +/// +function Pairwise(Self: sequence of T): sequence of (T, T); extensionmethod; +/// , func +function Pairwise(Self: sequence of T; func: (T,T)->Res): sequence of Res; extensionmethod; +/// size +function Batch(Self: sequence of T; size: integer): sequence of sequence of T; extensionmethod; +/// size +function Batch(Self: sequence of T; size: integer; proj: Func, Res>): sequence of Res; extensionmethod; +/// from step > 0 +function Slice(Self: sequence of T; from, step: integer): sequence of T; extensionmethod; +/// from step > 0 count +function Slice(Self: sequence of T; from, step, count: integer): sequence of T; extensionmethod; +/// +function Incremental(Self: sequence of integer): sequence of integer; extensionmethod; +/// +function Incremental(Self: array of integer): sequence of integer; extensionmethod; +/// +function Incremental(Self: List): sequence of integer; extensionmethod; +/// +function Incremental(Self: LinkedList): sequence of integer; extensionmethod; +/// +function Incremental(Self: sequence of real): sequence of real; extensionmethod; +/// +function Incremental(Self: array of real): sequence of real; extensionmethod; +/// +function Incremental(Self: List): sequence of real; extensionmethod; +/// +function Incremental(Self: LinkedList): sequence of real; extensionmethod; +/// . func +function Incremental(Self: sequence of T; func: (T,T)->T1): sequence of T1; extensionmethod; +/// . func +function Incremental(Self: sequence of T; func: (T,T,integer)->T1): sequence of T1; extensionmethod; +/// , +function AdjacentGroup(Self: sequence of T): sequence of array of T; extensionmethod; +//>> List # Extension methods for List T +/// +function Shuffle(Self: List): List; extensionmethod; +/// . , -1 +function AdjacentFind(Self: IList; start: integer := 0): integer; extensionmethod; +/// , eq, . , -1 +function AdjacentFind(Self: IList; eq: (T,T)->boolean; start: integer := 0): integer; extensionmethod; +/// index +function IndexMin(Self: IList; index: integer := 0): integer; extensionmethod;where T: IComparable; +/// index +function IndexMax(self: IList; index: integer := 0): integer; extensionmethod;where T: System.IComparable; +/// +function LastIndexMin(Self: IList): integer; extensionmethod;where T: System.IComparable; +/// [0,index-1] +function LastIndexMin(Self: IList; index: integer): integer; extensionmethod;where T: System.IComparable; +/// +function LastIndexMax(Self: IList): integer; extensionmethod;where T: System.IComparable; +/// [0,index-1] +function LastIndexMax(Self: IList; index: integer): integer; extensionmethod;where T: System.IComparable; +/// +procedure Replace(Self: IList; oldValue, newValue: T); extensionmethod; +/// +procedure Transform(Self: IList; f: T->T); extensionmethod; +/// , +procedure Fill(Self: IList; f: integer->T); extensionmethod; +/// from step +function Slice(Self: List; from, step: integer): List; extensionmethod; +/// from step count +function Slice(Self: List; from, step, count: integer): List; extensionmethod; +/// . , +function RemoveLast(Self: List): List; extensionmethod; +procedure CorrectFromTo(situation: integer; Len: integer; var from, to: integer; step: integer); +//>> array [,] of T # Extension methods for array [,] of T +/// +function RowCount(Self: array [,] of T): integer; extensionmethod; +/// +function ColCount(Self: array [,] of T): integer; extensionmethod; +/// , w - +function Print(Self: array [,] of T; w: integer := 4): array [,] of T; extensionmethod; +/// :w:f +function Print(Self: array [,] of real; w: integer := 7; f: integer := 2): array [,] of real; extensionmethod; +/// , w - +function Println(Self: array [,] of T; w: integer := 4): array [,] of T; extensionmethod; +/// :w:f +function Println(Self: array [,] of real; w: integer := 7; f: integer := 2): array [,] of real; extensionmethod; +/// k- +function Row(Self: array [,] of T; k: integer): array of T; extensionmethod; +/// k- +function Col(Self: array [,] of T; k: integer): array of T; extensionmethod; +/// k- +function RowSeq(Self: array [,] of T; k: integer): sequence of T; extensionmethod; +/// k- +function ColSeq(Self: array [,] of T; k: integer): sequence of T; extensionmethod; +/// +function Rows(Self: array [,] of T): sequence of sequence of T; extensionmethod; +/// +function Cols(Self: array [,] of T): sequence of sequence of T; extensionmethod; +/// k1 k2 +procedure SwapRows(Self: array [,] of T; k1, k2: integer); extensionmethod; +/// k1 k2 +procedure SwapCols(Self: array [,] of T; k1, k2: integer); extensionmethod; +/// k +procedure SetRow(Self: array [,] of T; k: integer; a: array of T); extensionmethod; +/// k +procedure SetRow(Self: array [,] of T; k: integer; a: sequence of T); extensionmethod := Self.SetRow(k,a.ToArray); +/// k +procedure SetCol(Self: array [,] of T; k: integer; a: array of T); extensionmethod; +/// k +procedure SetCol(Self: array [,] of T; k: integer; a: sequence of T); extensionmethod := Self.SetCol(k,a.ToArray); +/// (a[i,j],i,j) +function ElementsWithIndexes(Self: array [,] of T): sequence of (T, integer, integer); extensionmethod; +/// +function ElementsByRow(Self: array [,] of T): sequence of T; extensionmethod; +/// +function ElementsByCol(Self: array [,] of T): sequence of T; extensionmethod; +/// +function ConvertAll(Self: array [,] of T; converter: T->T1): array [,] of T1; extensionmethod; +/// +procedure Transform(Self: array [,] of T; f: T->T); extensionmethod; +/// , +procedure Fill(Self: array [,] of T; f: (integer,integer) ->T); extensionmethod; +//>> YYY - ! # YYY +function Matr(m,n: integer; params data: array of T): array [,] of T; +function MatrRandom(m: integer; n: integer; a, b: integer): array [,] of integer; +function MatrRandomInteger(m: integer; n: integer; a, b: integer): array [,] of integer; +function MatrRandomReal(m: integer; n: integer; a, b: real): array [,] of real; +function MatrFill(m, n: integer; x: T): array [,] of T; +function MatrGen(m, n: integer; gen: (integer,integer)->T): array [,] of T; +function Transpose(a: array [,] of T): array [,] of T; +function ReadMatrInteger(m, n: integer): array [,] of integer; +function ReadMatrReal(m, n: integer): array [,] of real; +//>> array of T # Extension methods for array of T +/// +function Shuffle(Self: array of T): array of T; extensionmethod; +{/// . , -1 +function AdjacentFind(Self: array of T; start: integer := 0): integer; extensionmethod; +/// , eq, . , -1 +function AdjacentFind(Self: array of T; eq: (T,T)->boolean; start: integer := 0): integer; extensionmethod; +/// +function Min(Self: array of T): T; extensionmethod;where T: System.IComparable; +/// +function Max(Self: array of T): T; extensionmethod;where T: System.IComparable; +/// +function Min(Self: array of integer): integer; extensionmethod; +/// +function Min(Self: array of real): real; extensionmethod; +/// +function Max(Self: array of integer): integer; extensionmethod; +/// +function Max(Self: array of real): real; extensionmethod; +{/// index +function IndexMin(Self: array of T; index: integer := 0): integer; extensionmethod; where T: System.IComparable; +/// index +function IndexMax(self: array of T; index: integer := 0): integer; extensionmethod; where T: System.IComparable; +/// +function LastIndexMin(Self: array of T): integer; extensionmethod; where T: System.IComparable; +/// [0,index] +function LastIndexMin(Self: array of T; index: integer): integer; extensionmethod; where T: System.IComparable; +/// +function LastIndexMax(Self: array of T): integer; extensionmethod; where T: System.IComparable; +/// [0,index] +function LastIndexMax(Self: array of T; index: integer): integer; extensionmethod; where T: System.IComparable; +/// +procedure Replace(Self: array of T; oldValue,newValue: T); extensionmethod; +/// +procedure Transform(self: array of T; f: T -> T); extensionmethod; +/// , +procedure Fill(Self: array of T; f: integer -> T); extensionmethod; +/// +function BinarySearch(self: array of T; x: T): integer; extensionmethod; +/// +function ConvertAll(self: array of T; converter: T->T1): array of T1; extensionmethod; +/// , . , +function Find(self: array of T; p: T->boolean): T; extensionmethod; +/// , . , -1 +function FindIndex(self: array of T; p: T->boolean): integer; extensionmethod; +/// , , start. , -1 +function FindIndex(self: array of T; start: integer; p: T->boolean): integer; extensionmethod; +/// , +function FindAll(self: array of T; p: T->boolean): array of T; extensionmethod; +/// , . , +function FindLast(self: array of T; p: T->boolean): T; extensionmethod; +/// , . , +function FindLastIndex(self: array of T; p: T->boolean): integer; extensionmethod; +/// , , start. , +function FindLastIndex(self: array of T; start: integer; p: T->boolean): integer; extensionmethod; +/// -1 +function IndexOf(self: array of T; x: T): integer; extensionmethod; +/// start -1 +function IndexOf(self: array of T; x: T; start: integer): integer; extensionmethod; +/// -1 +function LastIndexOf(self: array of T; x: T): integer; extensionmethod; +/// start -1 +function LastIndexOf(self: array of T; x: T; start: integer): integer; extensionmethod; +/// +procedure Sort(self: array of T); extensionmethod; +/// , cmp +procedure Sort(self: array of T; cmp: (T,T) ->integer); extensionmethod; +/// +function High(self: System.Array); extensionmethod := High(Self); +/// +function Low(self: System.Array); extensionmethod := Low(Self); +/// +function Indexes(Self: array of T): sequence of integer; extensionmethod := Range(0, Self.Length - 1); +/// , +function IndexesOf(Self: array of T; cond: T->boolean): sequence of integer; extensionmethod; +/// , +function IndexesOf(Self: array of T; cond: (T,integer) ->boolean): sequence of integer; extensionmethod; +/// from step +function Slice(Self: array of T; from, step: integer): array of T; extensionmethod; +/// from step count +function Slice(Self: array of T; from, step, count: integer): array of T; extensionmethod; +//>> integer # Extension methods for integer +/// +function Sqrt(Self: integer): real; extensionmethod; +/// +function Sqr(Self: integer): integer; extensionmethod; +/// True +function Between(Self: integer; a, b: integer): boolean; extensionmethod; +/// True +function InRange(Self: integer; a,b: integer): boolean; extensionmethod; +/// , +function IsEven(Self: integer): boolean; extensionmethod; +/// , +function IsOdd(Self: integer): boolean; extensionmethod; +/// 1 +function Range(Self: integer): sequence of integer; extensionmethod; +/// n +function To(Self: integer; n: integer): sequence of integer; extensionmethod; +/// n +function Downto(Self: integer; n: integer): sequence of integer; extensionmethod; +/// 0,1,...n-1 +function Times(Self: integer): sequence of integer; extensionmethod; +//>> BigInteger # Extension methods for BigInteger +/// +function Sqrt(Self: BigInteger): real; extensionmethod; +//>> real # Extension methods for real +/// True +function Between(Self: real; a, b: real): boolean; extensionmethod; +/// True +function InRange(Self: real; a,b: real): boolean; extensionmethod; +/// +function Sqrt(Self: real): real; extensionmethod; +/// +function Sqr(Self: real): real; extensionmethod; +/// , +function Round(Self: real): integer; extensionmethod; +/// x, digits +function Round(Self: real; digits: integer): real; extensionmethod; +/// , +function RoundBigInteger(Self: real): BigInteger; extensionmethod; +/// +function Trunc(Self: real): integer; extensionmethod; +/// +function TruncBigInteger(Self: real): BigInteger; extensionmethod; +/// , frac +function ToString(Self: real; frac: integer): string; extensionmethod; +//>> char # Extension methods for char +/// True +function Between(Self: char; a, b: char): boolean; extensionmethod; +/// True +function InRange(Self: char; a,b: char): boolean; extensionmethod; +/// +function Pred(Self: char); extensionmethod := PABCSystem.Pred(Self); +/// +function Succ(Self: char); extensionmethod := PABCSystem.Succ(Self); +/// Unicode +function Code(Self: char): integer; extensionmethod := word(Self); +/// +function IsDigit(Self: char); extensionmethod := char.IsDigit(Self); +/// +function IsLetter(Self: char): boolean; extensionmethod; +/// +function IsLower(Self: char): boolean; extensionmethod; +/// +function IsUpper(Self: char): boolean; extensionmethod; +/// +function ToDigit(Self: char): integer; extensionmethod; +/// +function ToLower(Self: char): char; extensionmethod; +/// +function ToUpper(Self: char): char; extensionmethod; +//>> string # Extension methods for string +/// True +function Between(Self: string; a, b: string): boolean; extensionmethod; +/// True +function InRange(Self: string; a,b: string): boolean; extensionmethod; +/// from from +function ReadInteger(Self: string; var from: integer): integer; extensionmethod; +/// from from +function ReadReal(Self: string; var from: integer): real; extensionmethod; +/// from from +function ReadWord(Self: string; var from: integer): string; extensionmethod; +/// +function ToInteger(Self: string): integer; extensionmethod; +/// BigInteger +function ToBigInteger(Self: string): BigInteger; extensionmethod; +/// +function ToReal(Self: string): real; extensionmethod; +/// +function ToWords(Self: string; params delim: array of char): array of string; extensionmethod; +/// +function ToIntegers(Self: string): array of integer; extensionmethod; +/// +function ToReals(Self: string): array of real; extensionmethod; +/// +function Inverse(Self: string): string; extensionmethod; +/// +function RegexReplace(Self: string; reg, repl: string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +/// +function RegexReplace(Self: string; reg: string; repl: Match->string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +/// Match +function Matches(Self: string; reg: string; options: RegexOptions := RegexOptions.None): sequence of Match; extensionmethod; +/// +function MatchValue(Self: string; reg: string; options: RegexOptions := RegexOptions.None): string; extensionmethod; +/// +function MatchValues(Self: string; reg: string; options: RegexOptions := RegexOptions.None): sequence of string; extensionmethod; +/// +function IsMatch(Self: string; reg: string; options: RegexOptions := RegexOptions.None): boolean; extensionmethod := Regex.IsMatch(Self, reg, options); +/// +function Remove(Self: string; params targets: array of string): string; extensionmethod; +/// , length +function Right(Self: string; length: integer): string; extensionmethod; +/// , length +function Left(Self: string; length: integer): string; extensionmethod; +/// from step +function Slice(Self: string; from, step: integer): string; extensionmethod; +/// from step count +function Slice(Self: string; from, step, count: integer): string; extensionmethod; +//>> Func # Extension methods for Func +/// +function Compose(Self: T2->TResult; composer: T1->T2): T1->TResult; extensionmethod; +//>> Complex # Extension methods for Complex +/// +function Conjugate(Self: Complex): Complex; extensionmethod; +//>> IDictionary # Extension methods for IDictionary +/// , , , +function Get(Self: IDictionary; K: Key): Value; extensionmethod; +//>> # Subroutines for typed files +/// +function OpenBinary(fname: string): file of T; +/// +function CreateBinary(fname: string): file of T; +/// +function OpenFile(fname: string): file of T; +/// +function CreateFile(fname: string): file of T; +/// +function OpenFileInteger(fname: string): file of integer; +/// +function OpenFileReal(fname: string): file of real; +/// +function CreateFileInteger(fname: string): file of integer; +/// +function CreateFileReal(fname: string): file of real; +/// , +procedure WriteElements(fname: string; ss: sequence of T); +//>> # Extension methods for typed files +/// n +function Seek(Self: file of T; n: int64): file of T; extensionmethod; +/// +function Read(Self: file of T): T; extensionmethod; +/// +function Read2(Self: file of T): (T,T); extensionmethod; +/// +function Read3(Self: file of T): (T,T,T); extensionmethod; +/// +function ReadElements(Self: file of T): sequence of T; extensionmethod; +/// , +function ReadElements(fname: string): sequence of T; +/// +procedure Write(Self: file of T; params vals: array of T); extensionmethod; diff --git a/PABCNetHelp/PABCSystemDocGen/hrefs.html b/PABCNetHelp/PABCSystemDocGen/hrefs.html new file mode 100644 index 000000000..42030681e --- /dev/null +++ b/PABCNetHelp/PABCSystemDocGen/hrefs.html @@ -0,0 +1,40 @@ + +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • C
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • +
  • Lst, LLst, HSet, SSet, Dict, KV
  • +
  • +
  • XXX - !
  • +
  • Print
  • +
  • sequence of T
  • +
  • List
  • +
  • array [,] of T
  • +
  • YYY - !
  • +
  • array of T
  • +
  • integer
  • +
  • BigInteger
  • +
  • real
  • +
  • char
  • +
  • string
  • +
  • Func
  • +
  • Complex
  • +
  • IDictionary
  • +
  • +
  • diff --git a/PABCNetHelp/PABCSystemDocGen/toc.html b/PABCNetHelp/PABCSystemDocGen/toc.html new file mode 100644 index 000000000..b95d75304 --- /dev/null +++ b/PABCNetHelp/PABCSystemDocGen/toc.html @@ -0,0 +1,157 @@ + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + +
  • + + + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/ABCClasses.html b/PABCNetHelp/PABCUnits/ABCObjects/ABCClasses.html new file mode 100644 index 000000000..495ec93e8 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/ABCClasses.html @@ -0,0 +1,21 @@ + + + + + + + + + + + + +

    +

    + ABCObjects.

    +

    +

    SpriteABC + ABCSprites, , .

    + + + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/ABCObjects/FastABCDraw.html b/PABCNetHelp/PABCUnits/ABCObjects/FastABCDraw.html new file mode 100644 index 000000000..2c329843c --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/FastABCDraw.html @@ -0,0 +1,40 @@ + + + + + + + + + + + + +

    +

    : + LockDrawingObjects, + RedrawObjects. UnLockDrawingObjects. +

    +

    , , + . : + +, . + 100 , , + 100*100=10000 . LockDrawingObjects + , RedrawObjects + , 100 + .

    +

    , GraphABC + LockDrawing, +UnLockDrawing,   +Redraw. , + , LockDrawingObjects, +UnLockDrawingObjects,   RedrawObjects + +ABCObjects ( + ). +

    +

     

    + + + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/ABCObjects/MultiPictureReview.html b/PABCNetHelp/PABCUnits/ABCObjects/MultiPictureReview.html new file mode 100644 index 000000000..11ce63297 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/MultiPictureReview.html @@ -0,0 +1,83 @@ + + + + + + + + + + + + +

    +

    MultiPictureABC + ( ), + .

    +

    , + . , + : , , , . + - + . , +SpriteABC, +ABCSprites.

    +

    , + :

    +
    +

    uses ABCObjects,GraphABC;

    +

    var p: MultiPictureABC;

    +

    begin
    +  p := new MultiPictureABC(50,50,'multi1.bmp');
    +  p.Add('multi2.bmp');
    +  p.Add('multi3.bmp');
    +  p.Add('multi2.bmp');
    + end.

    +
    +

    + .

    +

    +CurrentPicture:

    +
    +

    p.CurrentPicture := 2;

    +
    +

    :

    +
    +

    p.NextPicture;

    +
    +

    :

    +
    +

    p.PrevPicture;

    +
    +

    , + :

    +
    +

    while True do
    + begin
    +   p.NextPicture;
    +   Sleep(100);
    + end;

    +
    +

    + , "" +, + - . "" + :

    +
    +

    p.Save('multipic.gif');

    +
    +

    + "" , + :

    +
    +

    p := new MultiPictureABC(50,50,100,'multipic.gif');

    +
    +

    .

    +

    , SpriteABC + ( +, , , +, ). +, , , + .

    + + + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/ABCObjects/ObjectsArray.html b/PABCNetHelp/PABCUnits/ABCObjects/ObjectsArray.html new file mode 100644 index 000000000..900a0f49e --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/ObjectsArray.html @@ -0,0 +1,85 @@ + + + + + + + + + + + + +

    +Objects

    +

    ABCObjects Objects, + + . +ObjectsABCArray, ABCObjects. +Objects 2 : +Objects.Count + , Objects[i] + i- ( +ObjectABC, 0).

    +

    Objects + , + ObjectABC.

    +

    1. .

    +
    +

    uses ABCObjects;

    +

    var i:integer;

    +

    begin
    for i:=1 to 30 do
    +    new CircleABC(Random(WindowWidth),Random(WindowHeight),20,clRandom);
    while True do
    +    for i:=0 to Objects.Count-1 do
    +      Objects[i].MoveOn(Random(3)-1,Random(3)-1);
    + end.

    +
    +

    30 CircleABC. + Objects, + . + + , .

    +

    2. .

    +
    +

    uses ABCObjects;

    +

    var i:integer;

    +

    begin
    for i:=1 to 30 do
    +    case Random(2) of
    +      0: new CircleABC(Random(WindowWidth),Random(WindowHeight),20,clRandom);
    +      1: new RegularPolygonABC(Random(WindowWidth),Random(WindowHeight),20,3,clRandom);
    +    end;
    while True do
    +    for i:=0 to Objects.Count-1 do
    +      if Objects[i] is RegularPolygonABC + then
    +        RegularPolygonABC(Objects[i]).Angle := RegularPolygonABC(Objects[i]).Angle + 1;
    + end.

    +
    +

    30 CircleABC +RegularPolygonABC. +RegularPolygonABC. +Angle, RegularPolygonABC. + RegularPolygonABC + is, Objects[i] + RegularPolygonABC + .

    +

    3. , +p:

    +
    +

    for i:=Objects.Count-1 downto + 0 do
    +   if (Objects[i]<>p) and (p.Intersects(Objects[i]) then
    +     Objects[i].Destroy;

    +
    +

    , "" +p. + p +p. . + , , + .

    + + + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_ABCSprites.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_ABCSprites.html new file mode 100644 index 000000000..778b5b363 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_ABCSprites.html @@ -0,0 +1,41 @@ + + + + + + + + +

    ABCSprites

    +

    ABCSprites - + . + +SpriteABC + +MultiPictureABC, , + :

    +

    1. , +. , +/ .

    +

    2. , . + , . , + "" , "" - ( + ). , + .

    +

    , / + :

    + + + +
    + +procedure StartSprites; +
    +         +
    + +procedure StopSprites; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_BoardABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_BoardABC.html new file mode 100644 index 000000000..ed56dee00 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_BoardABC.html @@ -0,0 +1,426 @@ + + + + + + + + + + +

    BoardABC

    +

    BoardABC +BoundedObjectABC + "". + + ObjectABC BoundedObjectABC.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + BoardABC
    + + constructor Create(x,y,nx,ny,szx,szy: integer; cl: GColor); +
    +         nx +ny cl (szx,szy) (x,y). +
    + + constructor Create(g: BoardABC); +
    +         - +g +
    + BoardABC
    + + property DimX: integer; +
    +         +
    + + property DimY: integer; +
    +         +
    + + property CellSizeX: integer; +
    +         +
    + + property CellSizeY: integer; +
    +         +
    + +BoardABC
    + + function Clone: BoardABC; +
    +         +
    +, BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    +, BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_BoundedObjectABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_BoundedObjectABC.html new file mode 100644 index 000000000..fec931875 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_BoundedObjectABC.html @@ -0,0 +1,362 @@ + + + + + + + + + + + +

    BoundedObjectABC

    +

    BoundedObjectABC + ObjectABC + . + : +RectangleABC, SquareABC, EllipseABC, +CircleABC, RegularPolygonABC, StarABC, +BoardABC. BoundedObjectABC - : + .

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    + BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_CircleABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_CircleABC.html new file mode 100644 index 000000000..93c37c782 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_CircleABC.html @@ -0,0 +1,402 @@ + + + + + + + +

    CircleABC

    +

    CircleABC +EllipseABC +"". + + ObjectABC BoundedObjectABC.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + CircleABC
    + + constructor Create(x,y,r: integer; cl: GColor); +
    +         r +cl (x,y) +
    + + constructor Create(g: CircleABC); +
    +         - g + +
    + + procedure Scale(f: real);
    +         f   +(f>1 - , 0<f<1 - )
    + + function Clone: CircleABC; +
    +         +
    + CircleABC
    + + property Radius: integer; +
    +         +
    +, BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    +, BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_Common.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_Common.html new file mode 100644 index 000000000..bfda19fdb --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_Common.html @@ -0,0 +1,100 @@ + + + + + + + + + + + + + + + + +

    , ABCObjects

    + + + + + + + + + + + + + + + + + +
    + +procedure LockDrawingObjects; +
    +         . +RedrawObjects +
    + +procedure UnLockDrawingObjects; +
    +         +
    + +procedure RedrawObjects; +
    +         +
    + +procedure ToFront(g: ObjectABC); +
    +         +g +
    + +procedure ToBack(g: ObjectABC); +
    +         +g +
    + +function ObjectsCount: integer; +
    +         +
    + +function ObjectUnderPoint(x,y: integer): ObjectABC; +
    +         (x, +y) +
    + +function ObjectUnderPoint(p: Point): ObjectABC; +
    +         +p +
    + +procedure SwapPositions(o1,o2: ObjectABC); +
    +         + o1 o2 +
    + +function UIElementUnderPoint(x,y: integer): UIElementABC; +
    +         ABCObject (x, +y) +
    +var Objects: ObjectsABCArray;
    +         +
    + + UIElementABC
    +         ABCObject +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_ContainerABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_ContainerABC.html new file mode 100644 index 000000000..31fbd09ff --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_ContainerABC.html @@ -0,0 +1,383 @@ + + + + + + + + + + + +

    ContainerABC

    +

    ContainerABC + ObjectABC + " ". + .

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + ContainerABC
    + + constructor Create(x,y: integer); +
    +         (x, +y). Add. (x, +y) +
    + + constructor Create(g: ContainerABC); +
    +         - +g +
    + +ContainerABC
    + + property Count: integer; +
    +         +
    + + property Objects[i: integer]: ObjectABC; +
    +         +
    + ContainerABC
    + + procedure Add(g: ObjectABC); +
    +         +g +
    + + procedure Remove(g: ObjectABC); +
    +         +g +
    +procedure UnLink(g: ObjectABC);
    +         +g. g
    + + function Clone: ContainerABC; +
    +         +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_EllipseABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_EllipseABC.html new file mode 100644 index 000000000..7522c5f94 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_EllipseABC.html @@ -0,0 +1,390 @@ + + + + + + +

    EllipseABC

    +

    EllipseABC +BoundedObjectABC + "". + + ObjectABC BoundedObjectABC.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + EllipseABC
    + + constructor Create(x,y,w,h: integer; cl: GColor); +
    +         (w, +h) cl (x, +y) +
    + + constructor Create(g: EllipseABC);
    +         - +g +
    + EllipseABC
    + + function Clone: EllipseABC; +
    +         +
    +, BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    +, BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_MultiPictureABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_MultiPictureABC.html new file mode 100644 index 000000000..8253af832 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_MultiPictureABC.html @@ -0,0 +1,411 @@ + + + + + + + + + + + + +

    MultiPictureABC

    +

    MultiPictureABC +PictureABC +" ", , + .

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + MultiPictureABC
    + + constructor Create(x,y: integer; fname: string); +
    +         , , fname. (x,y). Add +
    + + constructor Create(x,y: integer; p: Picture); +
    +         , , p. (x,y). Add +
    + + constructor Create(x,y,w: integer; p: Picture); +
    +         p Picture. p , . w. p w, . (x,y) +
    + + constructor Create(x,y,w: integer; fname: string); +
    +         , fname. , . w. fname w, . (x,y) +
    + + constructor Create(g: MultiPictureABC); +
    +         - g +
    + + MultiPictureABC
    + + property CurrentPicture: integer; +
    +         +
    + + property Count: integer; +
    +         +
    + + MultiPictureABC
    + + procedure Add(fname: string); +
    +         , fname. , +
    + + procedure ChangePicture(fname: string); +
    +         , , fname +
    + + procedure ChangePicture(w: integer; fname: string); +
    +         , fname. , . w +
    + + procedure NextPicture; +
    +         +
    + + procedure PrevPicture; +
    +         +
    + + function Clone: MultiPictureABC; +
    +         +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_ObjectABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_ObjectABC.html new file mode 100644 index 000000000..0ac7fac26 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_ObjectABC.html @@ -0,0 +1,329 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    ObjectABC

    +

    ObjectABC + ABCObjects. + , +ABCObjects, : +BoundedObjectABC, RectangleABC, SquareABC, +EllipseABC, CircleABC, TextABC, +RegularPolygonABC, StarABC, PictureABC, +MultiPictureABC, BoardABC  ContainerABC. + ObjectABC - : +.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + ObjectABC
    + + constructor Create(x,y,w,h: integer; cl: GColor); +
    +         (w, +h) cl (x, +y) +
    + + constructor Create(g: ObjectABC); +
    +         - +g +
    + ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- Move. + 0. + , +
    + + property dy: integer; +
    +        y- Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         Text +
    + + property FontStyle: FontStyleType; +
    +         Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( nil) +
    + ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x,y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a,b) +
    + + procedure Move; virtual; +
    +         , dx,dy +
    + + procedure Scale(f: real); virtual; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; virtual; +
    +         True, (x,y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, r, False +
    + + function Clone0: ObjectABC; virtual; +
    +         +
    + + function Clone: ObjectABC; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); virtual;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_ObjectBoardABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_ObjectBoardABC.html new file mode 100644 index 000000000..276633f17 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_ObjectBoardABC.html @@ -0,0 +1,453 @@ + + + + + + + + +

    ObjectBoardABC

    +

    + + ObjectBoardABC + + BoardABC + " ".

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + ObjectBoardABC
    + + constructor Create(x,y,nx,ny,szx,szy: integer; cl: GColor); +
    +         nx +ny cl (szx, szy) (x, +y). +
    + + constructor Create(g: ObjectBoardABC); +
    +         - +g +
    + ObjectBoardABC
    + + procedure DestroyObject(x,y: integer); +
    +         (x, +y) +
    + + property Items[x,y: integer]: ObjectABC read GetObject write SetObject; default; +
    +         (x, y) +
    + + procedure SwapObjects(x1,y1,x2,y2: integer); +
    +         (x1, +y1) (x2, y2) +
    + + function Clone: ObjectBoardABC; +
    +         +
    +, BoardABC
    + + property DimX: integer; +
    +         +
    + + property DimY: integer; +
    +         +
    + + property CellSizeX: integer; +
    +         +
    + + property CellSizeY: integer; +
    +         +
    +, BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    +, BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_ObjectsABCArray.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_ObjectsABCArray.html new file mode 100644 index 000000000..3a2bea905 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_ObjectsABCArray.html @@ -0,0 +1,34 @@ + + + + + + + + +

    ObjectsABCArray

    +

    + + ObjectsABCArray +.

    + + + + + + + + + +
    + ObjectBoardABC
    + + property Items[i: integer]: ObjectABC; +
    +        i- + ( 0) +
    + + property Count: integer;
    +         ( )
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_PictureABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_PictureABC.html new file mode 100644 index 000000000..dd2ce3538 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_PictureABC.html @@ -0,0 +1,415 @@ + + + + + + + + + + + + + + +

    PictureABC

    +

    PictureABC +ObjectABC +"".

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + PictureABC
    + + constructor Create(x,y: integer; fname: string); +
    +         (x,y), fname +
    + + constructor Create(x,y: integer; p: Picture); +
    +         (x,y), p +
    + + constructor Create(g: PictureABC); +
    +         - g +
    + PictureABC
    + + property Transparent: boolean; +
    +         +
    + + property TransparentColor: GColor; +
    +        , +
    + + property ScaleX: real; +
    +         X . +
    + + property ScaleY: real; +
    +         Y . +
    + PictureABC
    + + procedure ChangePicture(fname: string); +
    +         , fname +
    + + procedure ChangePicture(p: Picture); +
    +         , p +
    + + procedure FlipVertical; +
    +         +
    + + procedure FlipHorizontal; +
    +         +
    + + procedure Save(fname: string); +
    +         fname +
    + + function Clone: PictureABC; +
    +         +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_RectangleABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_RectangleABC.html new file mode 100644 index 000000000..b8d7db202 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_RectangleABC.html @@ -0,0 +1,388 @@ + + + + + + +

    RectangleABC

    +

    RectangleABC +BoundedObjectABC + "".

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +RectangleABC
    + + constructor Create(x,y,w,h: integer; cl: GColor); +
    +         (w,h) cl (x,y) +
    + + constructor Create(g: RectangleABC); +
    +         - g +
    + +RectangleABC
    + + function Clone: RectangleABC; +
    +         +
    +, BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    +, BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_RegularPolygonABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_RegularPolygonABC.html new file mode 100644 index 000000000..271982c3d --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_RegularPolygonABC.html @@ -0,0 +1,423 @@ + + + + + + + + + + + +

    RegularPolygonABC

    +

    RegularPolygonABC +BoundedObjectABC + " ".

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +RegularPolygonABC
    + + constructor Create(x,y,r,n: integer; cl: GColor); +
    +         +n , r, cl (x, +y) +
    + + constructor Create(g: RegularPolygonABC); +
    +         - +g +
    + RegularPolygonABC
    + + property Count: integer; +
    +         +
    + + property Radius: integer; +
    +           +
    + + property Angle: real; +
    +         ( ) +
    + +RegularPolygonABC
    + + function Clone: RegularPolygonABC; +
    +         +
    +, BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    +, BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_RoundRectABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_RoundRectABC.html new file mode 100644 index 000000000..0df5ab30f --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_RoundRectABC.html @@ -0,0 +1,405 @@ + + + + + + + +

    RoundRectABC

    +

    RoundRectABC + BoundedObjectABC + " ".

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +RoundRectABC
    + + constructor Create(x,y,w,h,rr: integer; cl: GColor); +
    +         (w,h), cl, r (x,y) +
    + + constructor Create(g: RoundRectABC); +
    +         - g +
    + +RoundRectABC
    + + property Radius: integer; +
    +         +
    + +RoundRectABC
    + + function Clone: RoundRectABC; +
    +         +
    +, BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    +, BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_RoundSquareABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_RoundSquareABC.html new file mode 100644 index 000000000..ea463f2b5 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_RoundSquareABC.html @@ -0,0 +1,391 @@ + + + + + + + +

    RoundSquareABC

    +

    RoundSquareABC + RoundRectABC + " ".

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +RoundSquareABC
    + + constructor Create(x,y,w,r: integer; cl: GColor); +
    +         +w, cl r (x, y) +
    + + constructor Create(g: RoundSquareABC); +
    +         - +g +
    + +RoundSquareABC
    + + function Clone: RoundSquareABC; +
    +         +
    +, BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    +, BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_SpriteABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_SpriteABC.html new file mode 100644 index 000000000..bb74b74b4 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_SpriteABC.html @@ -0,0 +1,539 @@ + + + + + + + + + + + + + + + + + + + + + + +

    SpriteABC

    +

    SpriteABC +MultiPictureABC +"", + . + , . +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + SpriteABC
    + + constructor Create(x,y: integer; fname: string); +
    +         , fname. fname , .spinf. , . Add. AddStates CheckStates. .spinf, . (x,y) +
    + + constructor Create(x,y,w: integer; fname: string); +
    +         , fname. , , . w. fname w, . AddStates CheckStates (x,y) +
    + + constructor Create(x,y,w: integer; p: Picture); +
    +         , p: Picture. , , . w. w, . AddStates CheckStates. (x,y) +
    + + constructor Create(g: SpriteABC); +
    +         - g +
    + SpriteABC
    + + property StateName: string; +
    +         +
    + + property State: integer; +
    +         ( +1 StateCount) +
    + + property StateCount: integer; +
    +         . + +
    + + property Speed: integer; +
    +         (1..10) +
    + + property Active: boolean; +
    +         : True, (.. ), False +
    + + property Frame: integer; +
    +         +
    + SpriteABC
    + + procedure AddState(name: string; count: integer); +
    +         . CheckStates +
    + + procedure CheckStates; +
    +         . +
    + + procedure SaveWithInfo(fname: string); +
    +         . fname . , , .spinf +
    + + procedure NextFrame; +
    +         +
    + + procedure NextTick; +
    +         ; ticks, 1 NextFrame +
    + + function FrameCount: integer; +
    +         +
    + + function FrameBeg: integer; +
    +         +
    + + function Clone: SpriteABC; +
    +         +
    +, MultiPictureABC
    + + property CurrentPicture: integer; +
    +         +
    + + property Count: integer; +
    +         +
    +, MultiPictureABC
    + + procedure Add(fname: string); +
    +         +, fname. , +
    + + procedure ChangePicture(fname: string); +
    +         , , fname +
    + + procedure ChangePicture(w: integer; fname: string); +
    +         , fname. , . w +
    + + procedure NextPicture; +
    +         +
    + + procedure PrevPicture; +
    +         +
    + + function Clone: MultiPictureABC; +
    +         +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_SquareABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_SquareABC.html new file mode 100644 index 000000000..30ff81870 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_SquareABC.html @@ -0,0 +1,392 @@ + + + + + + + + + +

    SquareABC

    +

    SquareABC +RectangleABC + "".

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +SquareABC
    + + constructor Create(x,y,w: integer; cl: GColor); +
    +         w cl (x,y) +
    + + constructor Create(g: SquareABC); +
    +         - g +
    + SquareABC
    + + function Clone: SquareABC; +
    +         +
    +, BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    +, BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_StarABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_StarABC.html new file mode 100644 index 000000000..419dac861 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_StarABC.html @@ -0,0 +1,407 @@ + + + + + + + + + + + +

    StarABC

    +

    StarABC +RegularPolygonABC +" ".

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +StarABC
    + + constructor Create(x,y,r,r1,nn: integer; cl: GColor); +
    +         nn , r, r1, cl (x,y) +
    + + constructor Create(g: StarABC); +
    +         - g +
    + SquareABC
    + + property InternalRadius: integer; +
    +         +
    + SquareABC
    + + function Clone: StarABC; +
    +         +
    +, BoundedObjectABC
    + + property BorderColor: GColor; +
    +         +
    + + property BorderWidth: integer; +
    +         +
    + + property Bordered: boolean; +
    +         ( +True) +
    + + property Filled: boolean; +
    +         ( +True) +
    +, BoundedObjectABC
    + + procedure SetDrawSettings; +
    +         . +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_TextABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_TextABC.html new file mode 100644 index 000000000..e2b86e5a7 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_TextABC.html @@ -0,0 +1,363 @@ + + + + + + + + + + + +

    TextABC

    +

    TextABC +ObjectABC "". +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + TextABC
    + + constructor Create(x,y,pt: integer; cl: GColor; txt: string); +
    +         txt pt , cl (x,y) +
    + + constructor Create(g: TextABC); +
    +         - g +
    + TextABC
    + + property FontSize: integer; +
    +         +
    + + property TransparentBackground: boolean; +
    +         +
    + + property BackgroundColor: GColor; +
    +         +
    + +TextABC
    + + function Clone: TextABC; +
    +         +
    +, ObjectABC
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Height: integer; +
    +         +
    + + property dx: integer; +
    +        x- +Move. + 0. + , +
    + + property dy: integer; +
    +        y- +Move. + 0. + , +
    + + property Center: Point; +
    +         +
    + + property Position: Point; +
    +         +
    + + property Visible: boolean; +
    +         +
    + + property Color: GColor; +
    +         +
    + + property FontColor: GColor; +
    +         +
    + + property Text: string; +
    +         +
    + + property TextVisible: boolean; +
    +         +
    + + property TextScale: real;
    +         , 0<=TextScale<=1. + TextScale=1 . +TextScale=0.8
    + + property FontName: string; +
    +         +Text +
    + + property FontStyle: FontStyleType; +
    +         +Text +
    + + property Number: integer; +
    +         , . + Text +
    +property RealNumber: real;
    +         , . + Text. +
    + + property Owner: ContainerABC; +
    +         , ( +nil) +
    +, ObjectABC
    + + procedure MoveTo(x,y: integer); +
    +         (x, y) +
    + + procedure MoveOn(a,b: integer); +
    +         (a, b) +
    + + procedure Move; override; +
    +         , +dx, dy +
    + + procedure Scale(f: real); override; +
    +         f (f>1 - , 0<f<1 - ) +
    + + procedure ToFront; +
    +         +
    + + procedure ToBack; +
    +         +
    + + function Bounds: System.Drawing.Rectangle; +
    +         , +
    + + function PtInside(x,y: integer): boolean; +override; +
    +         True, (x, y) , False +
    + + function Intersect(g: ObjectABC): boolean;
    +
             True, + + g, False .
    + + function IntersectRect(r: System.Drawing.Rectangle): boolean; +
    +         True, +r, False +
    + + function Clone0: ObjectABC; override; +
    +         +
    + + procedure Draw(x,y: integer; g: Graphics); +override;
    +        . + . . + g: Graphics
    + + destructor Destroy; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/ABCObjects/gabc_WithGraphABC.html b/PABCNetHelp/PABCUnits/ABCObjects/gabc_WithGraphABC.html new file mode 100644 index 000000000..5694e2486 --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/gabc_WithGraphABC.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + +

    ABCObjects GraphABC

    +

    ABCObjects + GraphABC. , + ABCObjects , + GraphABC. , , +, ABCObjects:

    +
    + FillWindow('aqua.jpg');
    c := + new CircleABC(100,100,50,clGreen);
    r := + new RectangleABC(300,300,100,50,clBlue);
    + +
    +

    , +ABCObjects , + GraphABC, + ABCObjects . + ABCObjects, +RedrawObjects, + .

    +

     

    + + + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/ABCObjects/images/ABC1.PNG b/PABCNetHelp/PABCUnits/ABCObjects/images/ABC1.PNG new file mode 100644 index 000000000..814dbde9d Binary files /dev/null and b/PABCNetHelp/PABCUnits/ABCObjects/images/ABC1.PNG differ diff --git a/PABCNetHelp/PABCUnits/ABCObjects/images/ABC2.PNG b/PABCNetHelp/PABCUnits/ABCObjects/images/ABC2.PNG new file mode 100644 index 000000000..507037ee0 Binary files /dev/null and b/PABCNetHelp/PABCUnits/ABCObjects/images/ABC2.PNG differ diff --git a/PABCNetHelp/PABCUnits/ABCObjects/images/ABC3.PNG b/PABCNetHelp/PABCUnits/ABCObjects/images/ABC3.PNG new file mode 100644 index 000000000..6f2804701 Binary files /dev/null and b/PABCNetHelp/PABCUnits/ABCObjects/images/ABC3.PNG differ diff --git a/PABCNetHelp/PABCUnits/ABCObjects/images/ABCClasses.gif b/PABCNetHelp/PABCUnits/ABCObjects/images/ABCClasses.gif new file mode 100644 index 000000000..03e290769 Binary files /dev/null and b/PABCNetHelp/PABCUnits/ABCObjects/images/ABCClasses.gif differ diff --git a/PABCNetHelp/PABCUnits/ABCObjects/images/Cont1.PNG b/PABCNetHelp/PABCUnits/ABCObjects/images/Cont1.PNG new file mode 100644 index 000000000..6fb76ec7b Binary files /dev/null and b/PABCNetHelp/PABCUnits/ABCObjects/images/Cont1.PNG differ diff --git a/PABCNetHelp/PABCUnits/ABCObjects/images/Cont2.PNG b/PABCNetHelp/PABCUnits/ABCObjects/images/Cont2.PNG new file mode 100644 index 000000000..70280e694 Binary files /dev/null and b/PABCNetHelp/PABCUnits/ABCObjects/images/Cont2.PNG differ diff --git a/PABCNetHelp/PABCUnits/ABCObjects/images/Cont3.PNG b/PABCNetHelp/PABCUnits/ABCObjects/images/Cont3.PNG new file mode 100644 index 000000000..c7dabb07f Binary files /dev/null and b/PABCNetHelp/PABCUnits/ABCObjects/images/Cont3.PNG differ diff --git a/PABCNetHelp/PABCUnits/ABCObjects/images/Cont4.PNG b/PABCNetHelp/PABCUnits/ABCObjects/images/Cont4.PNG new file mode 100644 index 000000000..bb873da50 Binary files /dev/null and b/PABCNetHelp/PABCUnits/ABCObjects/images/Cont4.PNG differ diff --git a/PABCNetHelp/PABCUnits/ABCObjects/index.html b/PABCNetHelp/PABCUnits/ABCObjects/index.html new file mode 100644 index 000000000..86ff81a3b --- /dev/null +++ b/PABCNetHelp/PABCUnits/ABCObjects/index.html @@ -0,0 +1,61 @@ + + + + + + + + + + + + +

    ABCObjects:

    +

    ABCObjects + , +, + . + , + .

    +

    ABCObjects +- ,   + + . GraphABC.

    +

    ABCObjects  ABCSprites, +ABCButtons, ABCChessObjects, +ABCHouse, ABCRobots, ABCAdditionalObjects.

    +

    ABCObjects:

    +
    + +
    + + + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_Brush.html b/PABCNetHelp/PABCUnits/GraphABC/gr_Brush.html new file mode 100644 index 000000000..a945021d6 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_Brush.html @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + +

    +

    +. + , +- .

    +

    + : Prop - + , PenProp + , SetPenProp(p) + :

    + + + + + + + + + + + +
    + +procedure SetBrushColor(c: Color); +
    +         +
    + +function BrushColor: Color; +
    +         +
    + +procedure SetBrushStyle(bs: BrushStyleType); +
    +         . + +
    + +function BrushStyle: BrushStyleType; +
    +         . + + +
    + +procedure SetBrushHatch(bh: HatchStyle); +
    +         . + +
    + +function BrushHatch: HatchStyle; +
    +         . + + +
    + +procedure SetHatchBrushBackgroundColor(c: Color); +
    +         +
    + +function HatchBrushBackgroundColor: Color; +
    +         +
    + +procedure SetGradientBrushSecondColor(c: Color); +
    +         +
    + +function GradientBrushSecondColor: Color; +
    +         +
    +

    , + Brush.

    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_BrushClass.html b/PABCNetHelp/PABCUnits/GraphABC/gr_BrushClass.html new file mode 100644 index 000000000..09caea3b8 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_BrushClass.html @@ -0,0 +1,89 @@ + + + + + + + + + + + + + +

    Brush

    +

    +Brush + + GraphABCBrush:

    +
    +

    function Brush: + GraphABCBrush;

    +
    +

    GraphABCBrush + :

    +
    +

    type
    +  + GraphABC
    Brush = class
    +     property NET
    Brush: System.Drawing.Brush;
    +    property Color: GraphABC.Color;
    +     property Style: BrushStyleType;
    +     property Hatch: HatchStyle;
    +     property HatchBackgroundColor: GraphABC.Color;
    +     property GradientSecondColor: GraphABC.Color;
    +   end;

    +
    +

    GraphABCBrush + :

    + + + + + + + + + + + +
    + + property + NETBrush: System.Drawing.Brush; +
    +         .NET +
    + + property Color: GraphABC.Color; +
    +         +
    + + property Style: BrushStyleType; +
    +         +
    + + property Hatch: HatchStyle; +
    +         +
    + + property HatchBackgroundColor: GraphABC.Color; +
    +         +
    + + property GradientSecondColor: GraphABC.Color; +
    +        
    +

    .

    +
    +

    Brush.Color := clRed;
    + Brush.Style := bsHatch;
    + Brush.Hatch := bhBackwardDiagonal;

    +
    +

    , , + .

    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_BrushHatchStyle.html b/PABCNetHelp/PABCUnits/GraphABC/gr_BrushHatchStyle.html new file mode 100644 index 000000000..dbde25054 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_BrushHatchStyle.html @@ -0,0 +1,298 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +

    +HatchStyle. , + :

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    bhHorizontal
    bhVertical
    bhForwardDiagonal
    bhBackwardDiagonal
    bhCross
    bhDiagonalCross
    bhPercent05
    bhPercent10
    bhPercent20
    bhPercent25
    bhPercent30
    bhPercent40
    bhPercent50
    bhPercent60
    bhPercent70
    bhPercent75
    bhPercent80
    bhPercent90
    bhLightDownwardDiagonal
    bhLightUpwardDiagonal
    bhDarkDownwardDiagonal
    bhDarkUpwardDiagonal
    bhWideDownwardDiagonal
    bhWideUpwardDiagonal
    bhLightVertical
    bhLightHorizontal
    bhNarrowVertical
    bhNarrowHorizontal
    bhDarkVertical
    bhDarkHorizontal
    bhDashedDownwardDiagonal
    bhDashedUpwardDiagonal
    bhDashedHorizontal
    bhDashedVertical
    bhSmallConfetti
    bhLargeConfetti
    bhZigZag
    bhWave
    bhDiagonalBrick
    bhHorizontalBrick
    bhWeave
    bhPlaid
    bhDivot
    bhDottedGrid
    bhDottedDiamond
    bhShingle
    bhTrellis
    bhSphere
    bhSmallGrid
    bhSmallCheckerBoard
    bhLargeCheckerBoard
    bhOutlinedDiamond
    bhSolidDiamond
    bhMin
    bhLargeGrid
    bhMax
    + + + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_BrushStyle.html b/PABCNetHelp/PABCUnits/GraphABC/gr_BrushStyle.html new file mode 100644 index 000000000..70c742a1a --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_BrushStyle.html @@ -0,0 +1,43 @@ + + + + + + + + + + +

    +

    BrushStyleType: +

    +
    +

    type BrushStyleType = (bsSolid, bsClear, bsHatch, bsGradient);

    +
    +

    :

    + + + + + +
    +bsSolid
    +         ( )
    +bsClear
    +        
    +bsHatch
    +        
    +bsGradient
    +
            
    + +

    Color. + + +Hatch + +HatchBackgroundColor, - + +GradientSecondColor.

    + + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_ColorFun.html b/PABCNetHelp/PABCUnits/GraphABC/gr_ColorFun.html new file mode 100644 index 000000000..04a3da214 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_ColorFun.html @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + +

    +

    Color +System.Drawing.Color.

    + + + + + + + + + + + + + +
    + +function RGB(r,g,b: byte): Color; +
    +         , (r), (g) (b) (r,g b - 0 255) +
    + +function ARGB(a,r,g,b: byte): Color; +
    +         , (r), (g) (b) (a) (a,r,g,b - 0 255) +
    + +function RedColor(r: byte): Color; +
    +         r (r - 0 255) +
    + +function GreenColor(g: byte): Color; +
    +         g (g - 0 255) +
    + +function BlueColor(b: byte): Color; +
    +         b (b - 0 255) +
    + +function clRandom: Color; +
    +         +
    + +function GetRed(c: Color): integer; +
    +         +
    + +function GetGreen(c: Color): integer; +
    +         +
    + +function GetBlue(c: Color): integer; +
    +         +
    + +function GetAlpha(c: Color): integer; +
    +         + +
    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_Colors.html b/PABCNetHelp/PABCUnits/GraphABC/gr_Colors.html new file mode 100644 index 000000000..89dadb240 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_Colors.html @@ -0,0 +1,380 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    clAquamarineclAzureclBeige
    clBisqueclBlackclBlanchedAlmond
    clBlueclBlueVioletclBrown
    clBurlyWoodclCadetBlueclChartreuse
    clChocolateclCoralclCornflowerBlue
    clCornsilkclCrimsonclCyan
    clDarkBlueclDarkCyanclDarkGoldenrod
    clDarkGrayclDarkGreenclDarkKhaki
    clDarkMagentaclDarkOliveGreenclDarkOrange
    clDarkOrchidclDarkRedclDarkTurquoise
    clDarkSeaGreenclDarkSlateBlueclDarkSlateGray
    clDarkVioletclDeepPinkclDarkSalmon
    clDeepSkyBlueclDimGrayclDodgerBlue
    clFirebrickclFloralWhiteclForestGreen
    clFuchsiaclGainsboroclGhostWhite
    clGoldclGoldenrodclGray
    clGreenclGreenYellowclHoneydew
    clHotPinkclIndianRedclIndigo
    clIvoryclKhakiclLavender
    clLavenderBlushclLawnGreenclLemonChiffon
    clLightBlueclLightCoralclLightCyan
    clLightGrayclLightGreenclLightGoldenrodYellow
    clLightPinkclLightSalmonclLightSeaGreen
    clLightSkyBlueclLightSlateGrayclLightSteelBlue
    clLightYellowclLimeclLimeGreen
    clLinenclMagentaclMaroon
    clMediumBlueclMediumOrchidclMediumAquamarine
    clMediumPurpleclMediumSeaGreenclMediumSlateBlue
    clMoneyGreenclPlumclMistyRose
    clNavyclMidnightBlueclMintCream
    clMediumSpringGreenclMoccasinclNavajoWhite
    clMediumTurquoiseclOldLaceclOlive
    clOliveDrabclOrangeclOrangeRed
    clOrchidclPaleGoldenrodclPaleGreen
    clPaleTurquoiseclPaleVioletRedclPapayaWhip
    clPeachPuffclPeruclPink
    clMediumVioletRedclPowderBlueclPurple
    clRedclRosyBrownclRoyalBlue
    clSaddleBrownclSalmonclSandyBrown
    clSeaGreenclSeaShellclSienna
    clSilverclSkyBlueclSlateBlue
    clSlateGrayclSnowclSpringGreen
    clSteelBlueclTanclTeal
    clThistleclTomatoclTransparent
    clTurquoiseclVioletclWheat
    clWhiteclWhiteSmokeclYellow
    clYellowGreen
    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_Coordinate.html b/PABCNetHelp/PABCUnits/GraphABC/gr_Coordinate.html new file mode 100644 index 000000000..7d16a1277 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_Coordinate.html @@ -0,0 +1,35 @@ + + + + + + + + +

    +

    +

    +, - .

    +

    + :

    + + + + +
    + +procedure SetCoordinateOrigin(x0,y0: integer); +
    +         (x0,y0)
    + +procedure SetCoordinateScale(sx,sy: real); +
    +        
    + +procedure SetCoordinateAngle(a: real); +
    +        
    +
    + + Coordinate. + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_CoordinateClass.html b/PABCNetHelp/PABCUnits/GraphABC/gr_CoordinateClass.html new file mode 100644 index 000000000..f263af1f7 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_CoordinateClass.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + +

    GraphABCCoordinate

    +

    Coordinate + + GraphABCCoordinate:

    +
    +

    function Coordinate: + GraphABCCoordinate;

    +
    +

    GraphABCCoordinate + .

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + GraphABCCoordinate
    +property OriginX: integer;
    +        X- +
    +property OriginY: integer;
    +        Y- +
    +property Origin: Point;
    +         +
    +property Angle: real;
    +        
    +property ScaleX: real;
    +         X +
    +property ScaleY: real;
    +         Y
    +property Scale: real;
    +        
    +property Matrix: System.Drawing.Drawing2D.Matrix;
    +         3x3
    + +GraphABCCoordinate
    +procedure SetTransform(x0,y0,angle,sx,sy: real);
    +        
    +procedure SetOrigin(x0,y0: integer);
    +        
    +procedure SetScale(sx,sy: real);
    +        
    + + procedure SetScale(scale: real); +
    +        
    + + procedure SetMathematic; +
    +         ( OY , OX +- )
    +procedure SetStandard;
    +         ( OY , OX - +)
    +

    , , + .

    + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_Font.html b/PABCNetHelp/PABCUnits/GraphABC/gr_Font.html new file mode 100644 index 000000000..751c9b838 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_Font.html @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + +

    +

    . + , +- .

    +

    + : Prop - + , PenProp + , SetPenProp(p) + :

    + + + + + + + + + +
    + +procedure SetFontSize(size: integer); +
    +         +
    + +function FontSize: integer; +
    +         +
    + +procedure SetFontName(name: string); +
    +         +
    + +function FontName: string; +
    +         +
    + +procedure SetFontColor(c: Color); +
    +         +
    + +function FontColor: Color; +
    +         +
    + +procedure SetFontStyle(fs: integer); +
    +         +
    + +function FontStyle: integer; +
    +         +
    +

    + Font.

    +

    , + :

    + + + +
    + +function TextWidth(s: string): integer; +
    +         s +
    + +function TextHeight(s: string): integer; +
    +         s +
    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_FontClass.html b/PABCNetHelp/PABCUnits/GraphABC/gr_FontClass.html new file mode 100644 index 000000000..7c0b99dc2 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_FontClass.html @@ -0,0 +1,78 @@ + + + + + + + + + + + + +

    Font

    +

    +Font + + + GraphABCFont:

    +
    +

    function + Font: GraphABCFont;

    +
    +

    GraphABCFont + : , + +Font.

    +
    +

    type
    +  + GraphABC
    Font = class
    +     property NET
    Font: System.Drawing.Font;
    +    property Color: GraphABC.Color;
    +     property Style: integer;
    +     property + Size: integer; +
    +     property + Name: string;
    +   end;

    +
    +

    GraphABCFont + :

    + + + + + + +
    + + property + NETFont: System.Drawing.Font; +
    +         .NET +
    + + property Color: GraphABC.Color; +
    +         +
    + + property Style: FontStyleType; +
    +         +
    + + property Size: integer; +
    +         +
    + + property Name: string; +
    +         +
    +

    , , + .

    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_FontStyle.html b/PABCNetHelp/PABCUnits/GraphABC/gr_FontStyle.html new file mode 100644 index 000000000..0cbcd3254 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_FontStyle.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + +

    +

    +FontStyleType, :

    +
    +

    fsNormal ;
    + fsBold
    ;
    + fsItalic
    ;
    + fsBoldItalic
    ;
    + fsUnderline
    ;
    + fsBoldUnderline
    ;
    + fsItalicUnderline
    ;
    + fsBoldItalicUnderline
    .

    +
    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_IO.html b/PABCNetHelp/PABCUnits/GraphABC/gr_IO.html new file mode 100644 index 000000000..2cb4da826 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_IO.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + + +

    -

    + + + +
    + +procedure SetConsoleIO; +
    +         +-
    + +procedure SetGraphABCIO; +
    +         - + ( ) +
    +
    +


    +

     

    + + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_LockDrawing.html b/PABCNetHelp/PABCUnits/GraphABC/gr_LockDrawing.html new file mode 100644 index 000000000..2531c65d8 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_LockDrawing.html @@ -0,0 +1,38 @@ + + + + + + + + +

    + + + + +
    + +procedure Redraw; +
    +         . +LockDrawing +
    + +procedure LockDrawing; +
    +         . +Redraw +
    + +procedure UnlockDrawing; +
    +         +
    +

    + +LockDrawing Redraw + .

    +

    . +

    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_Options.html b/PABCNetHelp/PABCUnits/GraphABC/gr_Options.html new file mode 100644 index 000000000..3e17b8351 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_Options.html @@ -0,0 +1,44 @@ + + + + + + + + + + +

    + + + + + + +
    + +procedure SetSmoothing(sm: boolean); +
    +         +
    + +procedure SetSmoothingOn; +
    +         +
    + +procedure SetSmoothingOff; +
    +         +
    + +function SmoothingIsOn: boolean; +
    +         True, +
    + +procedure SetCoordinateOrigin(x0,y0: integer); +
    +         (x0,y0) +
    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_Other.html b/PABCNetHelp/PABCUnits/GraphABC/gr_Other.html new file mode 100644 index 000000000..11bc58435 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_Other.html @@ -0,0 +1,51 @@ + + + + + + + + + + + +

    + + + + + + + +
    + +procedure LockGraphics; +
    +         . +
    + +procedure UnLockGraphics; +
    +         . +
    + +function MainWindow: Form; +
    +         +
    + +function GraphABCControl: ABCControl; +
    +         +
    + +procedure SetConsoleIO; +
    +         - +
    + +procedure SetGraphABCIO; +
    +         - ( ) +
    + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_Pen.html b/PABCNetHelp/PABCUnits/GraphABC/gr_Pen.html new file mode 100644 index 000000000..adcc3b368 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_Pen.html @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + +

    +

    . + , +- .

    +

    + : Prop - + , PenProp + , SetPenProp(p) + :

    + + + + + + + + + + + +
    + +procedure SetPenColor(c: Color); +
    +         +
    + +function PenColor: Color; +
    +         +
    + +procedure SetPenWidth(Width: integer); +
    +         +
    + +function PenWidth: integer; +
    +         +
    + +procedure SetPenStyle(style: +DashStyle); +
    +         . + +
    + +function PenStyle: DashStyle; +
    +         . + +
    + +procedure SetPenMode(m: integer); +
    +         +
    + +function PenMode: integer; +
    +         +
    + +function PenX: integer; +
    +         x- +
    + +function PenY: integer; +
    +         y- +
    +

    , + Pen.

    + + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_PenClass.html b/PABCNetHelp/PABCUnits/GraphABC/gr_PenClass.html new file mode 100644 index 000000000..f30dcfee1 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_PenClass.html @@ -0,0 +1,94 @@ + + + + + + + + + + + + +

    Pen

    +

    Pen + + GraphABCPen:

    +
    +

    function Pen: GraphABCPen;

    +
    +

    GraphABCPen :

    +
    +

    type
    +  + GraphABCPen = class
    +     property NETPen: System.Drawing.Pen;
    +    property Color: GraphABC.Color;
    +     property Width: integer; +
    +     property Style: + DashStyle;
    +     property Mode: integer;
    +     property + X: integer;
    +     property + Y: integer;
    +   end;

    +
    +

    GraphABCPen + :

    + + + + + + + + + + +
    + + property + NETPen: System.Drawing.Pen; +
    +         .NET. + +
    + + property Color: GraphABC.Color; +
    +         +
    + + property Width: integer; +
    +         +
    + + property Style: DashStyle; +
    +         . +   +
    + + property Mode: integer; +
    +         +
    + + property X: integer; +
    +         X ( )
    + + property Y: integer; +
    +         Y ( )
    +

    .

    +
    +

    Pen.Color := clRed;
    + Pen.Style := psDot;

    +
    +

    , , + .

    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_PenDashStyle.html b/PABCNetHelp/PABCUnits/GraphABC/gr_PenDashStyle.html new file mode 100644 index 000000000..de1d14dc4 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_PenDashStyle.html @@ -0,0 +1,44 @@ + + + + + + + + + + + + +

    +

    DashStyle. + , :

    + + + + + + + + +
    +psSolid = DashStyle.Solid;
    +         +
    +
    +psClear = DashStyle.Clear;
    +        
    +psDash = DashStyle.Dash;
    +        
    +
    +psDot = DashStyle.Dot;
    +        
    +
    +psDashDot = DashStyle.DashDot;
    +        
    +
    +psDashDotDot = DashStyle.DashDotDot;
    +        
    +
    + + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_Picture.html b/PABCNetHelp/PABCUnits/GraphABC/gr_Picture.html new file mode 100644 index 000000000..e4c43a816 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_Picture.html @@ -0,0 +1,431 @@ + + + + + + + + + + + + + + + + + + + +

    Picture

    +

    Picture + GraphABC + System.Drawing.Bitmap. + , /, + +.

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +Picture
    + + constructor Create(w,h: integer); +
    +         w +h +
    + + constructor Create(fname: string); +
    +         +fname +
    + + constructor Create(r: System.Drawing.Rectangle); +
    +         +r +
    + +Picture
    + + property Width: integer;
    +         +
    + + property Height: integer;
    +         +
    + + property Transparent: boolean; +
    +         ; +TransparentColor +
    + + property TransparentColor: Color; +
    +         . +Transparent = True +
    + +Picture
    + + procedure Load(fname: string); +
    +         +fname +
    + + procedure Save(fname: string); +
    +         +fname +
    + + procedure SetSize(w,h: integer); +
    +         +w h +
    + + function Intersect(p: Picture): boolean; +
    +         True, + p, False + . + , +. , + . + . +
    + + procedure Draw(x,y: integer); +
    +         (x,y) +
    + + procedure Draw(x,y: integer; g: Graphics); +
    +         (x,y) +g +
    + + procedure Draw(x,y,w,h: integer); +
    +         (x,y), (w,h) +
    + + procedure Draw(x,y,w,h: integer; g: Graphics); +
    +         (x,y), (w,h), +g +
    + + procedure Draw(x,y: integer; r: System.Drawing.Rectangle); // r - part of Picture +
    +         , +r, (x,y) +
    + + procedure Draw(x,y: integer; r: System.Drawing.Rectangle; g: Graphics); +
    +         , +r, (x,y) g +
    + + procedure Draw(x,y,w,h: integer; r: System.Drawing.Rectangle); // r - part of Picture +
    +         , +r, (x,y), (w,h) +
    + + procedure Draw(x,y,w,h: integer; r: System.Drawing.Rectangle; g: Graphics); +
    +         , +r, (x,y), (w,h), g +
    + + procedure CopyRect(dst: System.Drawing.Rectangle; p: Picture; src: System.Drawing.Rectangle); +
    +         src +p dst +
    + + procedure CopyRect(dst: System.Drawing.Rectangle; bmp: Bitmap; src: System.Drawing.Rectangle); +
    +         src +bmp dst +
    + + procedure FlipHorizontal; +
    +         +
    + + procedure FlipVertical; +
    +         +
    + + procedure SetPixel(x,y: integer; c: Color); +
    +         (x,y) +c +
    + + procedure PutPixel(x,y: integer; c: Color); +
    +         (x,y) +c +
    + + function GetPixel(x,y: integer): Color; +
    +         (x,y) +
    + + procedure Line(x1,y1,x2,y2: integer); +
    +         (x1,y1) (x2,y2) +
    + + procedure Line(x1,y1,x2,y2: integer; c: Color); +
    +         (x1,y1) (x2,y2) +c +
    + + procedure FillCircle(x,y,r: integer); +
    +         (x,y) +r +
    + + procedure DrawCircle(x,y,r: integer); +
    +         (x,y) +r +
    + + procedure FillEllipse(x1,y1,x2,y2: integer); +
    +         , , (x1,y1) (x2,y2) +
    + + procedure DrawEllipse(x1,y1,x2,y2: integer); +
    +         , , (x1,y1) (x2,y2) +
    + + procedure FillRectangle(x1,y1,x2,y2: integer); +
    +         , (x1,y1) (x2,y2) +
    + + procedure FillRect(x1,y1,x2,y2: integer); +
    +         , (x1,y1) (x2,y2) +
    + + procedure DrawRectangle(x1,y1,x2,y2: integer); +
    +         , (x1,y1) (x2,y2) +
    + + procedure Circle(x,y,r: integer); +
    +         (x,y) +r +
    + + procedure Ellipse(x1,y1,x2,y2: integer); +
    +         , , (x1,y1) (x2,y2) +
    + + procedure Rectangle(x1,y1,x2,y2: integer); +
    +         , (x1,y1) (x2,y2) +
    + + procedure RoundRect(x1,y1,x2,y2,w,h: integer); +
    +         ; (x1,y1) (x2,y2) , +w h , +
    + + procedure Arc(x,y,r,a1,a2: integer); +
    +         (x,y) +r, , a1 +a2 OX (a1 a2 , ) +
    + + procedure FillPie(x,y,r,a1,a2: integer); +
    +         , (x,y) +r, , a1 +a2 OX (a1 a2 , ) +
    + + procedure DrawPie(x,y,r,a1,a2: integer); +
    +         , (x,y) +r, , a1 +a2 OX (a1 a2 , ) +
    + + procedure Pie(x,y,r,a1,a2: integer); +
    +         , (x,y) +r, , a1 +a2 OX (a1 a2 , ) +
    + + procedure DrawPolygon(points: array of Point); +
    +         , +points +
    + + procedure FillPolygon(points: array of Point); +
    +         , +points +
    + + procedure Polygon(points: array of Point); +
    +         , +points +
    + + procedure Polyline(points: array of Point); +
    +         , +points +
    + + procedure Curve(points: array of Point); +
    +         , +points +
    + + procedure DrawClosedCurve(points: array of Point); +
    +         , +points +
    + + procedure FillClosedCurve(points: array of Point); +
    +         , +points +
    + + procedure ClosedCurve(points: array of Point); +
    +         , +points +
    + + procedure TextOut(x,y: integer; s: string); +
    +         s (x,y) +
    + + procedure FloodFill(x,y: integer; c: Color); +
    +         +c, (x,y). +
    + + procedure Clear; +
    +         +
    + + procedure Clear(c: Color); +
    +         c +
    + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_Prim.html b/PABCNetHelp/PABCUnits/GraphABC/gr_Prim.html new file mode 100644 index 000000000..f859aa23a --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_Prim.html @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +

    , + . (), + ( ) ( ).

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +procedure SetPixel(x,y: integer; c: Color); +
    +         (x,y) c +
    + +procedure PutPixel(x,y: integer; c: Color); +
    +         (x,y) c +
    + +function GetPixel(x,y: integer): Color; +
    +         (x,y) +
    + +procedure MoveTo(x,y: integer); +
    +         (x,y) +
    + +procedure LineTo(x,y: integer); +
    +         (x,y). (x,y) +
    + +procedure LineTo(x,y: integer; c: Color); +
    +         (x,y) c. (x,y) +
    + +procedure Line(x1,y1,x2,y2: integer); +
    +         (x1,y1) (x2,y2) +
    + +procedure Line(x1,y1,x2,y2: integer; c: Color); +
    +         (x1,y1) (x2,y2) c +
    + +procedure FillCircle(x,y,r: integer); +
    +         (x,y) r +
    + +procedure DrawCircle(x,y,r: integer); +
    +         (x,y) r +
    + +procedure FillEllipse(x1,y1,x2,y2: integer); +
    +         , , (x1,y1) (x2,y2) +
    + +procedure DrawEllipse(x1,y1,x2,y2: integer); +
    +         , , (x1,y1) (x2,y2) +
    + +procedure FillRectangle(x1,y1,x2,y2: integer); +
    +         , (x1,y1) (x2,y2) +
    + +procedure FillRect(x1,y1,x2,y2: integer); +
    +         , (x1,y1) (x2,y2) +
    + +procedure DrawRectangle(x1,y1,x2,y2: integer); +
    +         , (x1,y1) (x2,y2) +
    + +procedure FillRoundRect(x1,y1,x2,y2,w,h: integer); +
    +         ; (x1,y1) (x2,y2) , w h , +
    + +procedure DrawRoundRect(x1,y1,x2,y2,w,h: integer); +
    +         ; (x1,y1) (x2,y2) , w h , +
    + +procedure Circle(x,y,r: integer); +
    +         (x,y) r +
    + +procedure Ellipse(x1,y1,x2,y2: integer); +
    +         , , (x1,y1) (x2,y2) +
    + +procedure Rectangle(x1,y1,x2,y2: integer); +
    +         , (x1,y1) (x2,y2) +
    + +procedure RoundRect(x1,y1,x2,y2,w,h: integer); +
    +         ; (x1,y1) (x2,y2) , w h , +
    + +procedure Arc(x,y,r,a1,a2: integer); +
    +         (x,y) r, , a1 a2 OX (a1 a2 , ) +
    + +procedure FillPie(x,y,r,a1,a2: integer); +
    +         , (x,y) r, , a1 a2 OX (a1 a2 , ) +
    + +procedure DrawPie(x,y,r,a1,a2: integer); +
    +         , (x,y) r, , a1 a2 OX (a1 a2 , ) +
    + +procedure Pie(x,y,r,a1,a2: integer); +
    +         , (x,y) r, , a1 a2 OX (a1 a2 , ) +
    + +procedure DrawPolygon(points: array of Point); +
    +         , points +
    + +procedure FillPolygon(points: array of Point); +
    +         , points +
    + +procedure Polygon(points: array of Point); +
    +         , points +
    + +procedure Polyline(points: array of Point); +
    +         , points +
    + +procedure Curve(points: array of Point); +
    +         , points +
    + +procedure DrawClosedCurve(points: array of Point); +
    +         , points +
    + +procedure FillClosedCurve(points: array of Point); +
    +         , points +
    + +procedure ClosedCurve(points: array of Point); +
    +         , points +
    + +procedure TextOut(x,y: integer; s: string); +
    +         s (x,y) +
    + +procedure TextOut(x,y: integer; n: integer); +
    +         n (x,y) +
    + +procedure TextOut(x,y: integer; r: real); +
    +         r (x,y) +
    + +procedure DrawTextCentered(x,y,x1,y1: integer; s: string); +
    +         s, + (x,y,x1,y1)
    + +procedure DrawTextCentered(x,y,x1,y1: integer; n: integer); +
    +         n, + (x,y,x1,y1)
    + +procedure DrawTextCentered(x,y,x1,y1: integer; r: real); +
    +         r, + (x,y,x1,y1)
    + +procedure FloodFill(x,y: integer; c: Color); +
    +         c, (x,y). +
    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_VK.html b/PABCNetHelp/PABCUnits/GraphABC/gr_VK.html new file mode 100644 index 000000000..448252d5c --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_VK.html @@ -0,0 +1,278 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    VK_LeftVK_UpVK_Right
    VK_DownVK_PageUpVK_PageDown
    VK_PriorVK_NextVK_Home
    VK_EndVK_InsertVK_Delete
    VK_EnterVK_ReturnVK_Back
    VK_TabVK_ShiftKeyVK_ControlKey
    VK_F1VK_F2VK_F3
    VK_F4VK_F5VK_F6
    VK_F7VK_F8VK_F9
    VK_F10VK_F11VK_F12
    VK_MenuVK_PauseVK_CapsLock
    VK_CapitalVK_PrintScreenVK_Help
    VK_SpaceVK_AVK_B
    VK_CVK_DVK_E
    VK_FVK_GVK_H
    VK_IVK_JVK_K
    VK_LVK_MVK_N
    VK_OVK_PVK_Q
    VK_RVK_SVK_T
    VK_UVK_VVK_W
    VK_XVK_YVK_Z
    VK_LWinVK_RWinVK_Apps
    VK_SleepVK_LineFeedVK_NumPad0
    VK_NumPad1VK_NumPad2VK_NumPad3
    VK_NumPad4VK_NumPad5VK_NumPad6
    VK_NumPad7VK_NumPad8VK_NumPad9
    VK_MultiplyVK_AddVK_Separator
    VK_SubtractVK_DecimalVK_Divide
    VK_NumLockVK_ScrollVK_LShiftKey
    VK_RShiftKeyVK_LControlKeyVK_RControlKey
    VK_LMenuVK_RMenuVK_KeyCode
    VK_ShiftVK_ControlVK_Alt
    VK_ModifiersVK_SelectVK_Print
    VK_Snapshot
    + + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_Window.html b/PABCNetHelp/PABCUnits/GraphABC/gr_Window.html new file mode 100644 index 000000000..10298804d --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_Window.html @@ -0,0 +1,295 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +

    +, - .

    +

    + : Prop - + , PenProp + , SetPenProp(p) + :

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +function WindowWidth: integer; +
    +         +
    + +function WindowHeight: integer; +
    +         +
    + +function WindowLeft: integer; +
    +         +
    + +function WindowTop: integer; +
    +         +
    + +function WindowIsFixedSize: boolean; +
    +         True, + , False   +
    + +procedure SetWindowWidth(w: integer); +
    +         +
    + +procedure SetWindowHeight(h: integer); +
    +         +
    + +procedure SetWindowLeft(l: integer); +
    +         +
    + +procedure SetWindowTop(t: integer); +
    +         +
    + +procedure SetWindowIsFixedSize(b: boolean); +
    +        , +
    + +function WindowCaption: string; +
    +         +
    + +function WindowTitle: string; +
    +         +
    + +procedure SetWindowCaption(s: string); +
    +         +
    + +procedure SetWindowTitle(s: string); +
    +         +
    + +procedure SetWindowSize(w,h: integer); +
    +         +
    + +procedure SetWindowPos(l,t: integer); +
    +         +
    + +procedure ClearWindow; +
    +         +
    + +procedure ClearWindow(c: Color); +
    +         c +
    + +procedure InitWindow(Left,Top,Width,Height: integer; BackColor: Color := clWhite); +
    +         +
    + +procedure SaveWindow(fname: string); +
    +         fname +
    + +procedure LoadWindow(fname: string); +
    +         fname +
    + +procedure FillWindow(fname: string); +
    +         fname +
    + +procedure CloseWindow; +
    +         +
    + +procedure CenterWindow; +
    +         +
    + +function WindowCenter: Point; +
    +         +
    + +procedure MaximizeWindow; +
    +         +
    + +procedure MinimizeWindow; +
    +         +
    + +procedure NormalizeWindow; +
    +         +
    +
    + , + Screen, + GraphBox, + : + + + + + + + + + + + + + + + + + + +
    + +function GraphBoxWidth: integer; +
    +         ( WindowWidth) +
    + +function GraphBoxHeight: integer; +
    +         ( WindowHeight) +
    + +function GraphBoxLeft: integer; +
    +         +
    + +function GraphBoxTop: integer; +
    +         +
    + +function ScreenWidth: integer; +
    +         +
    + +function ScreenHeight: integer; +
    +         +
    +

    + +Window.

    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_WindowClass.html b/PABCNetHelp/PABCUnits/GraphABC/gr_WindowClass.html new file mode 100644 index 000000000..458bbea6a --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_WindowClass.html @@ -0,0 +1,183 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

    GraphABCWindow

    +

    GraphABCWindow + .

    +
    +

    function Window: GraphABCWindow;

    +
    +

    .

    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +GraphABCWindow
    + + property Left: integer; +
    +         +
    + + property Top: integer; +
    +        
    + + property Width: integer;
    +         +
    + + property Height: integer;
    +         +
    + + property Caption: string;
    +         +
    + + property Title: string;
    +         +
    + + property IsFixedSize: boolean;
    +         +
    + +GraphABCWindow
    +procedure Clear;
    +        
    +procedure Clear(c: Color);
    +         c
    + + procedure SetSize(w,h: integer); +
    +         +
    + + procedure SetPos(l,t: integer); +
    +         +
    + + procedure Init(Left,Top,Width,Height: integer; BackColor: Color := +clWhite); +
    +         , +
    + + procedure Save(fname: string); +
    +         fname
    + + procedure Load(fname: string); +
    +         fname
    + + procedure Fill(fname: string); +
    +         fname
    + + procedure Close; +
    +        
    + + procedure Minimize; +
    +         +
    + + procedure Maximize; +
    +        
    + + procedure Normalize; +
    +         +
    + + procedure CenterOnScreen; +
    +        
    + + function Center: Point; +
    +        
    +

    , , + .

    + \ No newline at end of file diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_events.html b/PABCNetHelp/PABCUnits/GraphABC/gr_events.html new file mode 100644 index 000000000..e16b4d273 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_events.html @@ -0,0 +1,97 @@ + + + + + + + + + + + + + +

    GraphABC

    +

    + . , +, . + GraphABC + :

    + + + + + + + + + +
    + + OnMouseDown: procedure (x,y,mousebutton: integer); +
    +         . +(x,y) - + , mousebutton = 1, + , 2, +
    + + OnMouseUp: procedure (x,y,mousebutton: integer); +
    +         . (x,y) +- , mousebutton += 1, , 2,   +
    + + OnMouseMove: procedure (x,y,mousebutton: integer); +
    +         . (x,y) +- , mousebutton += 0, , 1, , 2, + .  +
    + + OnKeyDown: procedure (key: integer); +
    +         . +key - +
    + + OnKeyUp: procedure (key: integer); +
    +         . +key - +
    + + OnKeyPress: procedure (ch: char); +
    +         . +ch - , +
    + + OnResize: procedure; +
    +         +
    + + OnClose: procedure; +
    +         +
    +

    - , + + .

    +

    x y OnMouseDown, +OnMouseUp OnMouseMove + , mousebutton 0, + , 1, , 2, + . key OnKeyDown + OnKeyUp +. ch OnKeyPress + .

    +

    1. + .

    +

    2. + .

    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/gr_typesvars.html b/PABCNetHelp/PABCUnits/GraphABC/gr_typesvars.html new file mode 100644 index 000000000..f1dcec6b7 --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/gr_typesvars.html @@ -0,0 +1,50 @@ + + + + + + + + + + +

    GraphABC

    + + + + + + + + + + + + +
    + + Color = System.Drawing.Color; +
    +         +
    + + Point = System.Drawing.Point; +
    +         +
    + + GraphABCException = class(Exception) end; +
    +         GraphABC +
    + + RedrawProc: procedure; +
    +         . nil, +
    + + DrawInBuffer: boolean; +
    +         +
    + diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/BackwardDiagonal.png b/PABCNetHelp/PABCUnits/GraphABC/image/BackwardDiagonal.png new file mode 100644 index 000000000..1cb3c0d70 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/BackwardDiagonal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DarkDownwardDiagonal.png b/PABCNetHelp/PABCUnits/GraphABC/image/DarkDownwardDiagonal.png new file mode 100644 index 000000000..1ea3a9c96 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DarkDownwardDiagonal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DarkHorizontal.png b/PABCNetHelp/PABCUnits/GraphABC/image/DarkHorizontal.png new file mode 100644 index 000000000..ea59b46d1 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DarkHorizontal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DarkUpwardDiagonal.png b/PABCNetHelp/PABCUnits/GraphABC/image/DarkUpwardDiagonal.png new file mode 100644 index 000000000..4beb1f886 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DarkUpwardDiagonal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DarkVertical.png b/PABCNetHelp/PABCUnits/GraphABC/image/DarkVertical.png new file mode 100644 index 000000000..d5570ba34 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DarkVertical.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DashedDownwardDiagonal.png b/PABCNetHelp/PABCUnits/GraphABC/image/DashedDownwardDiagonal.png new file mode 100644 index 000000000..f704a6416 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DashedDownwardDiagonal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DashedHorizontal.png b/PABCNetHelp/PABCUnits/GraphABC/image/DashedHorizontal.png new file mode 100644 index 000000000..17c6b15da Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DashedHorizontal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DashedUpwardDiagonal.png b/PABCNetHelp/PABCUnits/GraphABC/image/DashedUpwardDiagonal.png new file mode 100644 index 000000000..5c07b2b1b Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DashedUpwardDiagonal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DashedVertical.png b/PABCNetHelp/PABCUnits/GraphABC/image/DashedVertical.png new file mode 100644 index 000000000..cfaa8a6f5 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DashedVertical.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DiagonalBrick.png b/PABCNetHelp/PABCUnits/GraphABC/image/DiagonalBrick.png new file mode 100644 index 000000000..99e92f892 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DiagonalBrick.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DiagonalCross.png b/PABCNetHelp/PABCUnits/GraphABC/image/DiagonalCross.png new file mode 100644 index 000000000..86e0922cc Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DiagonalCross.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Divot.png b/PABCNetHelp/PABCUnits/GraphABC/image/Divot.png new file mode 100644 index 000000000..794393ae5 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Divot.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DottedDiamond.png b/PABCNetHelp/PABCUnits/GraphABC/image/DottedDiamond.png new file mode 100644 index 000000000..b4963f726 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DottedDiamond.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/DottedGrid.png b/PABCNetHelp/PABCUnits/GraphABC/image/DottedGrid.png new file mode 100644 index 000000000..025eac07e Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/DottedGrid.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/ForwardDiagonal.png b/PABCNetHelp/PABCUnits/GraphABC/image/ForwardDiagonal.png new file mode 100644 index 000000000..825dc3e80 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/ForwardDiagonal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Horizontal.png b/PABCNetHelp/PABCUnits/GraphABC/image/Horizontal.png new file mode 100644 index 000000000..1796ae91f Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Horizontal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/HorizontalBrick.png b/PABCNetHelp/PABCUnits/GraphABC/image/HorizontalBrick.png new file mode 100644 index 000000000..e8b4e2569 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/HorizontalBrick.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/LargeCheckerBoard.png b/PABCNetHelp/PABCUnits/GraphABC/image/LargeCheckerBoard.png new file mode 100644 index 000000000..26afd8694 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/LargeCheckerBoard.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/LargeConfetti.png b/PABCNetHelp/PABCUnits/GraphABC/image/LargeConfetti.png new file mode 100644 index 000000000..23ccde80b Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/LargeConfetti.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/LargeGrid.png b/PABCNetHelp/PABCUnits/GraphABC/image/LargeGrid.png new file mode 100644 index 000000000..ab3157f73 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/LargeGrid.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/LightDownwardDiagonal.png b/PABCNetHelp/PABCUnits/GraphABC/image/LightDownwardDiagonal.png new file mode 100644 index 000000000..c2c42cd21 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/LightDownwardDiagonal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/LightHorizontal.png b/PABCNetHelp/PABCUnits/GraphABC/image/LightHorizontal.png new file mode 100644 index 000000000..c562686a2 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/LightHorizontal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/LightUpwardDiagonal.png b/PABCNetHelp/PABCUnits/GraphABC/image/LightUpwardDiagonal.png new file mode 100644 index 000000000..3fbc6c175 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/LightUpwardDiagonal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/LightVertical.png b/PABCNetHelp/PABCUnits/GraphABC/image/LightVertical.png new file mode 100644 index 000000000..3f7eb39ab Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/LightVertical.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/NarrowHorizontal.png b/PABCNetHelp/PABCUnits/GraphABC/image/NarrowHorizontal.png new file mode 100644 index 000000000..7550ab0f0 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/NarrowHorizontal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/NarrowVertical.png b/PABCNetHelp/PABCUnits/GraphABC/image/NarrowVertical.png new file mode 100644 index 000000000..c872cf3d6 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/NarrowVertical.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/OutlinedDiamond.png b/PABCNetHelp/PABCUnits/GraphABC/image/OutlinedDiamond.png new file mode 100644 index 000000000..4f1420cdd Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/OutlinedDiamond.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent05.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent05.png new file mode 100644 index 000000000..3c8070d3f Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent05.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent10.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent10.png new file mode 100644 index 000000000..62b5e5c03 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent10.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent20.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent20.png new file mode 100644 index 000000000..32443b04d Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent20.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent25.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent25.png new file mode 100644 index 000000000..bff1d4955 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent25.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent30.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent30.png new file mode 100644 index 000000000..b017342be Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent30.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent40.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent40.png new file mode 100644 index 000000000..02530e3b8 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent40.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent50.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent50.png new file mode 100644 index 000000000..7f1d0a696 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent50.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent60.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent60.png new file mode 100644 index 000000000..47f559c10 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent60.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent70.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent70.png new file mode 100644 index 000000000..9f718e19e Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent70.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent75.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent75.png new file mode 100644 index 000000000..b732f812f Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent75.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent80.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent80.png new file mode 100644 index 000000000..337b23b70 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent80.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Percent90.png b/PABCNetHelp/PABCUnits/GraphABC/image/Percent90.png new file mode 100644 index 000000000..cd4be75f4 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Percent90.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Plaid.png b/PABCNetHelp/PABCUnits/GraphABC/image/Plaid.png new file mode 100644 index 000000000..726f2f89a Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Plaid.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Shingle.png b/PABCNetHelp/PABCUnits/GraphABC/image/Shingle.png new file mode 100644 index 000000000..c68efb5f5 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Shingle.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/SmallCheckerBoard.png b/PABCNetHelp/PABCUnits/GraphABC/image/SmallCheckerBoard.png new file mode 100644 index 000000000..6659919de Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/SmallCheckerBoard.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/SmallConfetti.png b/PABCNetHelp/PABCUnits/GraphABC/image/SmallConfetti.png new file mode 100644 index 000000000..9120c2919 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/SmallConfetti.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/SmallGrid.png b/PABCNetHelp/PABCUnits/GraphABC/image/SmallGrid.png new file mode 100644 index 000000000..2973dba15 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/SmallGrid.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/SolidDiamond.png b/PABCNetHelp/PABCUnits/GraphABC/image/SolidDiamond.png new file mode 100644 index 000000000..72dc3e9d9 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/SolidDiamond.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Sphere.png b/PABCNetHelp/PABCUnits/GraphABC/image/Sphere.png new file mode 100644 index 000000000..a3b8711a4 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Sphere.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Trellis.png b/PABCNetHelp/PABCUnits/GraphABC/image/Trellis.png new file mode 100644 index 000000000..e15367c9c Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Trellis.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Vertical.png b/PABCNetHelp/PABCUnits/GraphABC/image/Vertical.png new file mode 100644 index 000000000..0dcf02248 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Vertical.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Wave.png b/PABCNetHelp/PABCUnits/GraphABC/image/Wave.png new file mode 100644 index 000000000..cde3519ea Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Wave.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/Weave.png b/PABCNetHelp/PABCUnits/GraphABC/image/Weave.png new file mode 100644 index 000000000..70efae698 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/Weave.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/WideDownwardDiagonal.png b/PABCNetHelp/PABCUnits/GraphABC/image/WideDownwardDiagonal.png new file mode 100644 index 000000000..c1b0ba247 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/WideDownwardDiagonal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/WideUpwardDiagonal.png b/PABCNetHelp/PABCUnits/GraphABC/image/WideUpwardDiagonal.png new file mode 100644 index 000000000..e9356d86e Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/WideUpwardDiagonal.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/ZigZag.png b/PABCNetHelp/PABCUnits/GraphABC/image/ZigZag.png new file mode 100644 index 000000000..2ce419de8 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/ZigZag.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/bsHatch.png b/PABCNetHelp/PABCUnits/GraphABC/image/bsHatch.png new file mode 100644 index 000000000..b017342be Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/bsHatch.png differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/psClear.GIF b/PABCNetHelp/PABCUnits/GraphABC/image/psClear.GIF new file mode 100644 index 000000000..e562d0843 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/psClear.GIF differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/psDash.GIF b/PABCNetHelp/PABCUnits/GraphABC/image/psDash.GIF new file mode 100644 index 000000000..4b7bfa21c Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/psDash.GIF differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/psDashDot.GIF b/PABCNetHelp/PABCUnits/GraphABC/image/psDashDot.GIF new file mode 100644 index 000000000..1073380bf Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/psDashDot.GIF differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/psDashDotDot.GIF b/PABCNetHelp/PABCUnits/GraphABC/image/psDashDotDot.GIF new file mode 100644 index 000000000..35fbbbba4 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/psDashDotDot.GIF differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/psDot.GIF b/PABCNetHelp/PABCUnits/GraphABC/image/psDot.GIF new file mode 100644 index 000000000..aeae42761 Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/psDot.GIF differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/image/psSolid.GIF b/PABCNetHelp/PABCUnits/GraphABC/image/psSolid.GIF new file mode 100644 index 000000000..5d23a7ebb Binary files /dev/null and b/PABCNetHelp/PABCUnits/GraphABC/image/psSolid.GIF differ diff --git a/PABCNetHelp/PABCUnits/GraphABC/index.html b/PABCNetHelp/PABCUnits/GraphABC/index.html new file mode 100644 index 000000000..262e427fe --- /dev/null +++ b/PABCNetHelp/PABCUnits/GraphABC/index.html @@ -0,0 +1,81 @@ + + + + + + + + + + + + +

    GraphABC

    + GraphABC + + . +   , + . , +GraphABC + , . + GraphABC - +.

    GraphABC + GDI+, , +, + . , + , . , + SetPenColor(c) + PenColor, + Pen.Color.

    +

    GraphABC + + +GraphABCControl, . + + +GraphABCControl + , , +, , (, + Robot Drawman).

    +

    +Picture, +, .

    +

    (LockDrawing) + , +Redraw . + .

    +

    GraphABC + , , , + . + :

    +
    +


    +
    +
    + :
    + : Pen
    +
    + :
    + : Brush
    +
    +
    + :
    + : Font
    +
    + : Picture
    + :
    + + : Window
    + :
    + + : + Coordinate
    +
    +
    + GraphABC
    + +
    + -

    +

     

    + + diff --git a/PABCNetHelp/PABCUnits/Timers/index.html b/PABCNetHelp/PABCUnits/Timers/index.html new file mode 100644 index 000000000..ed3c8ce00 --- /dev/null +++ b/PABCNetHelp/PABCUnits/Timers/index.html @@ -0,0 +1,70 @@ + + + + + + + + + + + + +

    Timers

    + Timers Timer, + . + Timer +   - +, .

    +Timer + :

    +
    +

    type
    +  + Timer = class
    +
        constructor (ms: integer; TimerProc: + procedure);
    +    procedure Start;
    +    procedure Stop;
    +    property Enabled: boolean read write;
    +    property Interval: integer read write;
    +   end;

    +
    +

    Timer + :

    + + + + + + + + + + +
    +constructor (ms: integer; TimerProc: +procedure);
    +         , + ms , + TimerProc, +. , + Start
    +procedure Start;
    +        
    +procedure Stop;
    +         +
    +property Enabled: boolean read write;
    +         + +
    +property Interval: integer read write;
    +         + +
    +

    + .

    + + + diff --git a/PABCNetHelp/PascalABCNET.hhp b/PABCNetHelp/PascalABCNET.hhp new file mode 100644 index 000000000..63420b638 --- /dev/null +++ b/PABCNetHelp/PascalABCNET.hhp @@ -0,0 +1,13 @@ +[OPTIONS] +Auto Index=Yes +Compatibility=1.1 or later +Compiled file=PascalABCNET.chm +Contents file=Table of Contents.hhc +Default Font=Arial,8,0 +Default topic=Common\main.html +Display compile progress=No +Language=0x419 + + +[INFOTYPES] + diff --git a/PABCNetHelp/Table of Contents.hhc b/PABCNetHelp/Table of Contents.hhc new file mode 100644 index 000000000..8a4f73e9d --- /dev/null +++ b/PABCNetHelp/Table of Contents.hhc @@ -0,0 +1,1312 @@ + + + + + + + + + +
      +
    • + + +
        +
      • + + + +
      • + + + +
      • + + + +
      • + + + +
      • + + + +
      +
    • + + +
        +
      • + + + +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + +
            +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          • + + + +
          +
        +
      • + + +
          +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        +
      +
    • + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        +
      • + + + +
      +
    • + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        • + + + +
        +
      +
    • + + +
        +
      • + + +
          +
        • + + + +
        • + + + +
        +
      • + + +
          +
        • + + +
            +
          • + + + +
          +
        • + + +
            +
          • + + + +
          • + + + +
          +
        • + + + +
        +
      +
    + diff --git a/PABCNetHelp/Tutorials/ABCObjects/ABCContainersOverview.html b/PABCNetHelp/Tutorials/ABCObjects/ABCContainersOverview.html new file mode 100644 index 000000000..3c01a95bb --- /dev/null +++ b/PABCNetHelp/Tutorials/ABCObjects/ABCContainersOverview.html @@ -0,0 +1,86 @@ + + + + + + + + + + + + +

    ABCObjects:

    +

    ContainerABC +. ObjectABC, + . :

    +
    +

    procedure Add(g: ObjectABC);
    + property Count: integer; //
    + property Objects[i: integer]: ObjectABC; // i-

    +
    +

    ContainerABC + . ContainerABC + Owner ContainerABC. + Owner , + . + Owner nil + .

    +

    :

    +
    +

    uses ABCObjects,GraphABC;

    +

    var
    +   c1,c2: ContainerABC;
    +   r: CircleABC;

    +

    begin
    +  SetWindowSize(300,300);
    +  c1 := new ContainerABC(50,30);
    +  c1.Add(new RectangleABC(0,0,200,100,clGreen));
    +  r := + new CircleABC(15,15,70,clYellow);
    + end.

    +
    +

    :

    +

    +

    c1 + , r (r.Owner=nil). , ObjectsCount=2 ( + ), c1.Count=1.

    +

    ,

    +
    +

    c1.Add(r);

    +
    +

    :

    +

    +

    r + (r.Owner=2), +ObjectsCount=1 ( ), +c1.Count=2. , + - ( - (15,15), + c1).

    +

    +
    +

    r.Owner := c1;

    +
    +

    c2 +   r + c2. + :

    +
    +

    c2 := new + ContainerABC(50,160);
    + c2.Add(new RectangleABC(0,0,200,100,clMoneyGreen));
    + r.Owner := c2;

    +
    +

    :

    +

    +

    , r +, (15,15), + c2.

    +

    r.Owner:=c2; + r.Owner:=nil; , +r + :

    +

    + + + \ No newline at end of file diff --git a/PABCNetHelp/Tutorials/ABCObjects/QuickStartABCObjects.html b/PABCNetHelp/Tutorials/ABCObjects/QuickStartABCObjects.html new file mode 100644 index 000000000..9bee80234 --- /dev/null +++ b/PABCNetHelp/Tutorials/ABCObjects/QuickStartABCObjects.html @@ -0,0 +1,72 @@ + + + + + + + + + + + + +

    ABCObjects:

    +
    +

    , +ABCObjects, RectangleABC, SquareABC, +EllipseABC, CircleABC, TextABC, RegularPolygonABC, +StarABC, PictureABC, MultiPictureABC, BoardABC ContainerABC.

    +

    , + , + . + . , Width Height + , +Color - + .. + +. , ToFront + , Intersect(g) +, g.

    +

    +ObjectABC, + .

    +

    :

    +
    +

    uses ABCObjects,GraphABC;

    +

    var
    +   r: RectangleABC;
    +   c: CircleABC;

    +

    begin
    +  r := new RectangleABC(70,50,200,100,clMoneyGreen);
    +  c := new CircleABC(120,80,110,clBlue);
    + end.

    +
    +

    :

    +
    +

    +
    +

    + MoveOn , + :

    +
    +

    r.Width := 150;
    + c.Color := clRed;
    + c.MoveOn(30,30);

    +
    +

    :

    +
    +

    +
    +

    :

    +
    +

    c.Number := 8;
    + r.Text := 'Hello';
    + r.ToFront;

    +
    +

    :

    +
    +

    +
    + + + \ No newline at end of file diff --git a/PABCNetHelp/Tutorials/ABCObjects/images/ABC1.PNG b/PABCNetHelp/Tutorials/ABCObjects/images/ABC1.PNG new file mode 100644 index 000000000..814dbde9d Binary files /dev/null and b/PABCNetHelp/Tutorials/ABCObjects/images/ABC1.PNG differ diff --git a/PABCNetHelp/Tutorials/ABCObjects/images/ABC2.PNG b/PABCNetHelp/Tutorials/ABCObjects/images/ABC2.PNG new file mode 100644 index 000000000..507037ee0 Binary files /dev/null and b/PABCNetHelp/Tutorials/ABCObjects/images/ABC2.PNG differ diff --git a/PABCNetHelp/Tutorials/ABCObjects/images/ABC3.PNG b/PABCNetHelp/Tutorials/ABCObjects/images/ABC3.PNG new file mode 100644 index 000000000..6f2804701 Binary files /dev/null and b/PABCNetHelp/Tutorials/ABCObjects/images/ABC3.PNG differ diff --git a/PABCNetHelp/Tutorials/ABCObjects/images/ABCClasses.gif b/PABCNetHelp/Tutorials/ABCObjects/images/ABCClasses.gif new file mode 100644 index 000000000..03e290769 Binary files /dev/null and b/PABCNetHelp/Tutorials/ABCObjects/images/ABCClasses.gif differ diff --git a/PABCNetHelp/Tutorials/ABCObjects/images/Cont1.PNG b/PABCNetHelp/Tutorials/ABCObjects/images/Cont1.PNG new file mode 100644 index 000000000..6fb76ec7b Binary files /dev/null and b/PABCNetHelp/Tutorials/ABCObjects/images/Cont1.PNG differ diff --git a/PABCNetHelp/Tutorials/ABCObjects/images/Cont2.PNG b/PABCNetHelp/Tutorials/ABCObjects/images/Cont2.PNG new file mode 100644 index 000000000..70280e694 Binary files /dev/null and b/PABCNetHelp/Tutorials/ABCObjects/images/Cont2.PNG differ diff --git a/PABCNetHelp/Tutorials/ABCObjects/images/Cont3.PNG b/PABCNetHelp/Tutorials/ABCObjects/images/Cont3.PNG new file mode 100644 index 000000000..c7dabb07f Binary files /dev/null and b/PABCNetHelp/Tutorials/ABCObjects/images/Cont3.PNG differ diff --git a/PABCNetHelp/Tutorials/ABCObjects/images/Cont4.PNG b/PABCNetHelp/Tutorials/ABCObjects/images/Cont4.PNG new file mode 100644 index 000000000..bb873da50 Binary files /dev/null and b/PABCNetHelp/Tutorials/ABCObjects/images/Cont4.PNG differ diff --git a/PABCNetHelp/default.css b/PABCNetHelp/default.css new file mode 100644 index 000000000..3ba1cbea8 --- /dev/null +++ b/PABCNetHelp/default.css @@ -0,0 +1,88 @@ +BODY, +TABLE, +TD { + font-family: Arial; + background-color: #ffffff; + font-size: 9pt; +} + +BLOCKQUOTE { + margin-top: 6pt; + margin-bottom: 6pt; + margin-left: 20pt; +} + +dfn { + color: #006000; + font-weight:bold; +} + +code { + color: #000080; + font-size: 10pt; +} + +code.codeit { + color: #000000; + font-family: Times; + font-style: italic; + font-size: 10pt; +} + +H1 { + font-family: Arial; + font-weight: bold; + margin-top: 12pt; + margin-bottom: 6pt; + font-size: 12pt; + color: #000080; +} + +H2 { + font-family: Arial; + font-weight: normal; + margin-bottom: 2pt; + margin-top: 6pt; + font-size: 11pt; + color: #0000A0; +} + +H3 { + font-weight: bold; + margin-bottom: 2pt; + margin-top: 6pt; + font-size: 10pt; + color: #000000; +} + +H4 { + font-weight: bold; + color: #000080; + margin-top: 6pt; + margin-bottom: 2pt; + font-size: 10pt; +} + +H5 { + font-size: 10.0pt; +} + +H6 { + font-size: 10.0pt; +} + +P { + font-family: Arial; + margin-top: 6pt; + margin-bottom: 0pt; + font-family: Arial, sans-serif; + font-size: 9pt; +} + +OL, +UL { + margin-top: 3pt; + margin-bottom: 0pt; + font-size: 9pt; + font-family: Arial, sans-serif; +} \ No newline at end of file diff --git a/PABCNetHelp/images/ide1.png b/PABCNetHelp/images/ide1.png new file mode 100644 index 000000000..e77202e3d Binary files /dev/null and b/PABCNetHelp/images/ide1.png differ diff --git a/PABCNetHelp/images/ide2.png b/PABCNetHelp/images/ide2.png new file mode 100644 index 000000000..6f258b4b0 Binary files /dev/null and b/PABCNetHelp/images/ide2.png differ diff --git a/PABCNetHelp/images/ide3.png b/PABCNetHelp/images/ide3.png new file mode 100644 index 000000000..bb723e546 Binary files /dev/null and b/PABCNetHelp/images/ide3.png differ diff --git a/PABCNetHelp/images/ide4.png b/PABCNetHelp/images/ide4.png new file mode 100644 index 000000000..44b6bb908 Binary files /dev/null and b/PABCNetHelp/images/ide4.png differ diff --git a/PABCNetHelp/images/ideDM.png b/PABCNetHelp/images/ideDM.png new file mode 100644 index 000000000..fa289f81f Binary files /dev/null and b/PABCNetHelp/images/ideDM.png differ diff --git a/PABCNetHelp/images/idePT4.png b/PABCNetHelp/images/idePT4.png new file mode 100644 index 000000000..2d0814fad Binary files /dev/null and b/PABCNetHelp/images/idePT4.png differ diff --git a/PABCNetHelp/images/ideRB.png b/PABCNetHelp/images/ideRB.png new file mode 100644 index 000000000..6e4443f47 Binary files /dev/null and b/PABCNetHelp/images/ideRB.png differ diff --git a/PABCNetHelp/images/idedebug.png b/PABCNetHelp/images/idedebug.png new file mode 100644 index 000000000..346023aec Binary files /dev/null and b/PABCNetHelp/images/idedebug.png differ diff --git a/PABCNetHelp/images/ideparams.png b/PABCNetHelp/images/ideparams.png new file mode 100644 index 000000000..2f3d5b683 Binary files /dev/null and b/PABCNetHelp/images/ideparams.png differ diff --git a/PABCNetHelp/images/idepoint.png b/PABCNetHelp/images/idepoint.png new file mode 100644 index 000000000..b6e73caaa Binary files /dev/null and b/PABCNetHelp/images/idepoint.png differ diff --git a/PABCNetHelp/images/intellisense1.png b/PABCNetHelp/images/intellisense1.png new file mode 100644 index 000000000..650efb8fa Binary files /dev/null and b/PABCNetHelp/images/intellisense1.png differ diff --git a/PABCNetHelp/images/intellisense2.png b/PABCNetHelp/images/intellisense2.png new file mode 100644 index 000000000..c538b467c Binary files /dev/null and b/PABCNetHelp/images/intellisense2.png differ diff --git a/PABCNetHelp/images/intellisense3.png b/PABCNetHelp/images/intellisense3.png new file mode 100644 index 000000000..9425b3b39 Binary files /dev/null and b/PABCNetHelp/images/intellisense3.png differ diff --git a/PABCNetHelp/images/intellisense4.png b/PABCNetHelp/images/intellisense4.png new file mode 100644 index 000000000..ce5afb2dd Binary files /dev/null and b/PABCNetHelp/images/intellisense4.png differ diff --git a/PABCNetHelp/images/intellisense5.png b/PABCNetHelp/images/intellisense5.png new file mode 100644 index 000000000..54ec28141 Binary files /dev/null and b/PABCNetHelp/images/intellisense5.png differ diff --git a/PABCNetHelp/images/intellisense6.png b/PABCNetHelp/images/intellisense6.png new file mode 100644 index 000000000..f4a07e87e Binary files /dev/null and b/PABCNetHelp/images/intellisense6.png differ diff --git a/PABCNetHelp/mnemonicsrus.txt b/PABCNetHelp/mnemonicsrus.txt new file mode 100644 index 000000000..24816901d --- /dev/null +++ b/PABCNetHelp/mnemonicsrus.txt @@ -0,0 +1,64 @@ +à +á +â +ã +ä +å +æ +ç +è +é +ê +ë +ì +í +î +ï +ð +ñ +ò +ó +ô +õ +ö +÷ +ø +ù +ú +û +ü +ý +þ +ÿ +À +Á + +à +Ä +Å +Æ +Ç +È +É +Ê +Ë +Ì +Í +Î +Ï +Đ +Ñ +Ò +Ó +Ô +Õ +Ö +× +Ø +Ù +Ú +Û +Ü +Ý +Þ +ß diff --git a/PABCNetHelp/readmeWebHelp.txt b/PABCNetHelp/readmeWebHelp.txt new file mode 100644 index 000000000..37ad39f4b --- /dev/null +++ b/PABCNetHelp/readmeWebHelp.txt @@ -0,0 +1,20 @@ + WebHelp WinCHM Pro + + 01_decodemnemonics.pas +Table of Contents.hhc Table of Contents New.hhc + , HTMLHelp Table of Contents.hhc + . , Table of Contents New.hhc + Table of Contents.hhc + + chm, PascalABCNET.hhp + + WinCHM Pro, chm, WinChmWebHelp + + 02_collectKeywords.pas Table of Contents.wcp + + + WinCHM Pro + + HTML + + FTP PascalABC.NET \ No newline at end of file diff --git a/PABCNetHelp/Описание языка PascalABC.NET/ref_FreePascal.pdf b/PABCNetHelp/Описание языка PascalABC.NET/ref_FreePascal.pdf new file mode 100644 index 000000000..83e404cb2 --- /dev/null +++ b/PABCNetHelp/Описание языка PascalABC.NET/ref_FreePascal.pdf @@ -0,0 +1,19542 @@ +%PDF-1.4 +% +1 0 obj +<< /S /GoTo /D (chapter.1) >> +endobj +4 0 obj +(Pascal Tokens) +endobj +5 0 obj +<< /S /GoTo /D (section.1.1) >> +endobj +8 0 obj +(Symbols) +endobj +9 0 obj +<< /S /GoTo /D (section.1.2) >> +endobj +12 0 obj +(Comments) +endobj +13 0 obj +<< /S /GoTo /D (section.1.3) >> +endobj +16 0 obj +(Reserved words) +endobj +17 0 obj +<< /S /GoTo /D (subsection.1.3.1) >> +endobj +20 0 obj +(Turbo Pascal reserved words) +endobj +21 0 obj +<< /S /GoTo /D (subsection.1.3.2) >> +endobj +24 0 obj +(Free Pascal reserved words) +endobj +25 0 obj +<< /S /GoTo /D (subsection.1.3.3) >> +endobj +28 0 obj +(Object Pascal reserved words) +endobj +29 0 obj +<< /S /GoTo /D (subsection.1.3.4) >> +endobj +32 0 obj +(Modifiers) +endobj +33 0 obj +<< /S /GoTo /D (section.1.4) >> +endobj +36 0 obj +(Identifiers) +endobj +37 0 obj +<< /S /GoTo /D (section.1.5) >> +endobj +40 0 obj +(Hint directives) +endobj +41 0 obj +<< /S /GoTo /D (section.1.6) >> +endobj +44 0 obj +(Numbers) +endobj +45 0 obj +<< /S /GoTo /D (section.1.7) >> +endobj +48 0 obj +(Labels) +endobj +49 0 obj +<< /S /GoTo /D (section.1.8) >> +endobj +52 0 obj +(Character strings) +endobj +53 0 obj +<< /S /GoTo /D (chapter.2) >> +endobj +56 0 obj +(Constants) +endobj +57 0 obj +<< /S /GoTo /D (section.2.1) >> +endobj +60 0 obj +(Ordinary constants) +endobj +61 0 obj +<< /S /GoTo /D (section.2.2) >> +endobj +64 0 obj +(Typed constants) +endobj +65 0 obj +<< /S /GoTo /D (section.2.3) >> +endobj +68 0 obj +(Resource strings) +endobj +69 0 obj +<< /S /GoTo /D (chapter.3) >> +endobj +72 0 obj +(Types) +endobj +73 0 obj +<< /S /GoTo /D (section.3.1) >> +endobj +76 0 obj +(Base types) +endobj +77 0 obj +<< /S /GoTo /D (subsection.3.1.1) >> +endobj +80 0 obj +(Ordinal types) +endobj +81 0 obj +<< /S /GoTo /D (section*.7) >> +endobj +84 0 obj +(Integers) +endobj +85 0 obj +<< /S /GoTo /D (section*.8) >> +endobj +88 0 obj +(Boolean types) +endobj +89 0 obj +<< /S /GoTo /D (section*.9) >> +endobj +92 0 obj +(Enumeration types) +endobj +93 0 obj +<< /S /GoTo /D (section*.10) >> +endobj +96 0 obj +(Subrange types) +endobj +97 0 obj +<< /S /GoTo /D (subsection.3.1.2) >> +endobj +100 0 obj +(Real types) +endobj +101 0 obj +<< /S /GoTo /D (section.3.2) >> +endobj +104 0 obj +(Character types) +endobj +105 0 obj +<< /S /GoTo /D (subsection.3.2.1) >> +endobj +108 0 obj +(Char or AnsiChar) +endobj +109 0 obj +<< /S /GoTo /D (subsection.3.2.2) >> +endobj +112 0 obj +(WideChar) +endobj +113 0 obj +<< /S /GoTo /D (subsection.3.2.3) >> +endobj +116 0 obj +(Other character types) +endobj +117 0 obj +<< /S /GoTo /D (subsection.3.2.4) >> +endobj +120 0 obj +(Strings) +endobj +121 0 obj +<< /S /GoTo /D (subsection.3.2.5) >> +endobj +124 0 obj +(Short strings) +endobj +125 0 obj +<< /S /GoTo /D (subsection.3.2.6) >> +endobj +128 0 obj +(Ansistrings) +endobj +129 0 obj +<< /S /GoTo /D (subsection.3.2.7) >> +endobj +132 0 obj +(UnicodeStrings) +endobj +133 0 obj +<< /S /GoTo /D (subsection.3.2.8) >> +endobj +136 0 obj +(WideStrings) +endobj +137 0 obj +<< /S /GoTo /D (subsection.3.2.9) >> +endobj +140 0 obj +(Constant strings) +endobj +141 0 obj +<< /S /GoTo /D (subsection.3.2.10) >> +endobj +144 0 obj +(PChar - Null terminated strings) +endobj +145 0 obj +<< /S /GoTo /D (subsection.3.2.11) >> +endobj +148 0 obj +(String sizes) +endobj +149 0 obj +<< /S /GoTo /D (section.3.3) >> +endobj +152 0 obj +(Structured Types) +endobj +153 0 obj +<< /S /GoTo /D (section*.11) >> +endobj +156 0 obj +(Packed structured types) +endobj +157 0 obj +<< /S /GoTo /D (subsection.3.3.1) >> +endobj +160 0 obj +(Arrays) +endobj +161 0 obj +<< /S /GoTo /D (section*.12) >> +endobj +164 0 obj +(Static arrays) +endobj +165 0 obj +<< /S /GoTo /D (section*.13) >> +endobj +168 0 obj +(Dynamic arrays) +endobj +169 0 obj +<< /S /GoTo /D (section*.14) >> +endobj +172 0 obj +(Packing and unpacking an array) +endobj +173 0 obj +<< /S /GoTo /D (subsection.3.3.2) >> +endobj +176 0 obj +(Record types) +endobj +177 0 obj +<< /S /GoTo /D (subsection.3.3.3) >> +endobj +180 0 obj +(Set types) +endobj +181 0 obj +<< /S /GoTo /D (subsection.3.3.4) >> +endobj +184 0 obj +(File types) +endobj +185 0 obj +<< /S /GoTo /D (section.3.4) >> +endobj +188 0 obj +(Pointers) +endobj +189 0 obj +<< /S /GoTo /D (section.3.5) >> +endobj +192 0 obj +(Forward type declarations) +endobj +193 0 obj +<< /S /GoTo /D (section.3.6) >> +endobj +196 0 obj +(Procedural types) +endobj +197 0 obj +<< /S /GoTo /D (section.3.7) >> +endobj +200 0 obj +(Variant types) +endobj +201 0 obj +<< /S /GoTo /D (subsection.3.7.1) >> +endobj +204 0 obj +(Definition) +endobj +205 0 obj +<< /S /GoTo /D (subsection.3.7.2) >> +endobj +208 0 obj +(Variants in assignments and expressions) +endobj +209 0 obj +<< /S /GoTo /D (subsection.3.7.3) >> +endobj +212 0 obj +(Variants and interfaces) +endobj +213 0 obj +<< /S /GoTo /D (section.3.8) >> +endobj +216 0 obj +(Type aliases) +endobj +217 0 obj +<< /S /GoTo /D (chapter.4) >> +endobj +220 0 obj +(Variables) +endobj +221 0 obj +<< /S /GoTo /D (section.4.1) >> +endobj +224 0 obj +(Definition) +endobj +225 0 obj +<< /S /GoTo /D (section.4.2) >> +endobj +228 0 obj +(Declaration) +endobj +229 0 obj +<< /S /GoTo /D (section.4.3) >> +endobj +232 0 obj +(Scope) +endobj +233 0 obj +<< /S /GoTo /D (section.4.4) >> +endobj +236 0 obj +(Initialized variables) +endobj +237 0 obj +<< /S /GoTo /D (section.4.5) >> +endobj +240 0 obj +(Thread Variables) +endobj +241 0 obj +<< /S /GoTo /D (section.4.6) >> +endobj +244 0 obj +(Properties) +endobj +245 0 obj +<< /S /GoTo /D (chapter.5) >> +endobj +248 0 obj +(Objects) +endobj +249 0 obj +<< /S /GoTo /D (section.5.1) >> +endobj +252 0 obj +(Declaration) +endobj +253 0 obj +<< /S /GoTo /D (section.5.2) >> +endobj +256 0 obj +(Fields) +endobj +257 0 obj +<< /S /GoTo /D (section.5.3) >> +endobj +260 0 obj +(Static fields) +endobj +261 0 obj +<< /S /GoTo /D (section.5.4) >> +endobj +264 0 obj +(Constructors and destructors ) +endobj +265 0 obj +<< /S /GoTo /D (section.5.5) >> +endobj +268 0 obj +(Methods) +endobj +269 0 obj +<< /S /GoTo /D (subsection.5.5.1) >> +endobj +272 0 obj +(Declaration) +endobj +273 0 obj +<< /S /GoTo /D (subsection.5.5.2) >> +endobj +276 0 obj +(Method invocation) +endobj +277 0 obj +<< /S /GoTo /D (section*.15) >> +endobj +280 0 obj +(Static methods) +endobj +281 0 obj +<< /S /GoTo /D (section*.16) >> +endobj +284 0 obj +(Virtual methods) +endobj +285 0 obj +<< /S /GoTo /D (section*.17) >> +endobj +288 0 obj +(Abstract methods) +endobj +289 0 obj +<< /S /GoTo /D (section.5.6) >> +endobj +292 0 obj +(Visibility) +endobj +293 0 obj +<< /S /GoTo /D (chapter.6) >> +endobj +296 0 obj +(Classes) +endobj +297 0 obj +<< /S /GoTo /D (section.6.1) >> +endobj +300 0 obj +(Class definitions) +endobj +301 0 obj +<< /S /GoTo /D (section.6.2) >> +endobj +304 0 obj +(Class instantiation) +endobj +305 0 obj +<< /S /GoTo /D (section.6.3) >> +endobj +308 0 obj +(Class destruction) +endobj +309 0 obj +<< /S /GoTo /D (section.6.4) >> +endobj +312 0 obj +(Methods) +endobj +313 0 obj +<< /S /GoTo /D (subsection.6.4.1) >> +endobj +316 0 obj +(Declaration) +endobj +317 0 obj +<< /S /GoTo /D (subsection.6.4.2) >> +endobj +320 0 obj +(invocation) +endobj +321 0 obj +<< /S /GoTo /D (subsection.6.4.3) >> +endobj +324 0 obj +(Virtual methods) +endobj +325 0 obj +<< /S /GoTo /D (subsection.6.4.4) >> +endobj +328 0 obj +(Class methods) +endobj +329 0 obj +<< /S /GoTo /D (subsection.6.4.5) >> +endobj +332 0 obj +(Class constructors and destructors) +endobj +333 0 obj +<< /S /GoTo /D (subsection.6.4.6) >> +endobj +336 0 obj +(Static class methods) +endobj +337 0 obj +<< /S /GoTo /D (subsection.6.4.7) >> +endobj +340 0 obj +(Message methods) +endobj +341 0 obj +<< /S /GoTo /D (subsection.6.4.8) >> +endobj +344 0 obj +(Using inherited) +endobj +345 0 obj +<< /S /GoTo /D (section.6.5) >> +endobj +348 0 obj +(Properties) +endobj +349 0 obj +<< /S /GoTo /D (subsection.6.5.1) >> +endobj +352 0 obj +(Definition) +endobj +353 0 obj +<< /S /GoTo /D (subsection.6.5.2) >> +endobj +356 0 obj +(Indexed properties) +endobj +357 0 obj +<< /S /GoTo /D (subsection.6.5.3) >> +endobj +360 0 obj +(Array properties) +endobj +361 0 obj +<< /S /GoTo /D (subsection.6.5.4) >> +endobj +364 0 obj +(Default properties) +endobj +365 0 obj +<< /S /GoTo /D (subsection.6.5.5) >> +endobj +368 0 obj +(Storage information) +endobj +369 0 obj +<< /S /GoTo /D (subsection.6.5.6) >> +endobj +372 0 obj +(Overriding properties) +endobj +373 0 obj +<< /S /GoTo /D (section.6.6) >> +endobj +376 0 obj +(Class properties) +endobj +377 0 obj +<< /S /GoTo /D (section.6.7) >> +endobj +380 0 obj +(Nested types, constants and variables) +endobj +381 0 obj +<< /S /GoTo /D (chapter.7) >> +endobj +384 0 obj +(Interfaces) +endobj +385 0 obj +<< /S /GoTo /D (section.7.1) >> +endobj +388 0 obj +(Definition) +endobj +389 0 obj +<< /S /GoTo /D (section.7.2) >> +endobj +392 0 obj +(Interface identification: A GUID) +endobj +393 0 obj +<< /S /GoTo /D (section.7.3) >> +endobj +396 0 obj +(Interface implementations) +endobj +397 0 obj +<< /S /GoTo /D (section.7.4) >> +endobj +400 0 obj +(Interface delegation) +endobj +401 0 obj +<< /S /GoTo /D (section.7.5) >> +endobj +404 0 obj +(Interfaces and COM) +endobj +405 0 obj +<< /S /GoTo /D (section.7.6) >> +endobj +408 0 obj +(CORBA and other Interfaces) +endobj +409 0 obj +<< /S /GoTo /D (section.7.7) >> +endobj +412 0 obj +(Reference counting) +endobj +413 0 obj +<< /S /GoTo /D (chapter.8) >> +endobj +416 0 obj +(Generics) +endobj +417 0 obj +<< /S /GoTo /D (section.8.1) >> +endobj +420 0 obj +(Introduction) +endobj +421 0 obj +<< /S /GoTo /D (section.8.2) >> +endobj +424 0 obj +(Generic class definition) +endobj +425 0 obj +<< /S /GoTo /D (section.8.3) >> +endobj +428 0 obj +(Generic class specialization) +endobj +429 0 obj +<< /S /GoTo /D (section.8.4) >> +endobj +432 0 obj +(A word about type compatibility) +endobj +433 0 obj +<< /S /GoTo /D (section.8.5) >> +endobj +436 0 obj +(A word about scope) +endobj +437 0 obj +<< /S /GoTo /D (chapter.9) >> +endobj +440 0 obj +(Extended records) +endobj +441 0 obj +<< /S /GoTo /D (section.9.1) >> +endobj +444 0 obj +(Definition) +endobj +445 0 obj +<< /S /GoTo /D (section.9.2) >> +endobj +448 0 obj +(Extended record enumerators) +endobj +449 0 obj +<< /S /GoTo /D (chapter.10) >> +endobj +452 0 obj +(Class and record helpers) +endobj +453 0 obj +<< /S /GoTo /D (section.10.1) >> +endobj +456 0 obj +(Definition) +endobj +457 0 obj +<< /S /GoTo /D (section.10.2) >> +endobj +460 0 obj +(Restrictions on class helpers) +endobj +461 0 obj +<< /S /GoTo /D (section.10.3) >> +endobj +464 0 obj +(Restrictions on record helpers) +endobj +465 0 obj +<< /S /GoTo /D (section.10.4) >> +endobj +468 0 obj +(Inheritance) +endobj +469 0 obj +<< /S /GoTo /D (section.10.5) >> +endobj +472 0 obj +(Usage) +endobj +473 0 obj +<< /S /GoTo /D (chapter.11) >> +endobj +476 0 obj +(Objective-Pascal Classes) +endobj +477 0 obj +<< /S /GoTo /D (section.11.1) >> +endobj +480 0 obj +(Introduction) +endobj +481 0 obj +<< /S /GoTo /D (section.11.2) >> +endobj +484 0 obj +(Objective-Pascal class declarations) +endobj +485 0 obj +<< /S /GoTo /D (section.11.3) >> +endobj +488 0 obj +(Formal declaration) +endobj +489 0 obj +<< /S /GoTo /D (section.11.4) >> +endobj +492 0 obj +(Allocating and de-allocating Instances) +endobj +493 0 obj +<< /S /GoTo /D (section.11.5) >> +endobj +496 0 obj +(Protocol definitions) +endobj +497 0 obj +<< /S /GoTo /D (section.11.6) >> +endobj +500 0 obj +(Categories) +endobj +501 0 obj +<< /S /GoTo /D (section.11.7) >> +endobj +504 0 obj +(Name scope and Identifiers) +endobj +505 0 obj +<< /S /GoTo /D (section.11.8) >> +endobj +508 0 obj +(Selectors) +endobj +509 0 obj +<< /S /GoTo /D (section.11.9) >> +endobj +512 0 obj +(The id type) +endobj +513 0 obj +<< /S /GoTo /D (section.11.10) >> +endobj +516 0 obj +(Enumeration in Objective-C classes) +endobj +517 0 obj +<< /S /GoTo /D (chapter.12) >> +endobj +520 0 obj +(Expressions) +endobj +521 0 obj +<< /S /GoTo /D (section.12.1) >> +endobj +524 0 obj +(Expression syntax) +endobj +525 0 obj +<< /S /GoTo /D (section.12.2) >> +endobj +528 0 obj +(Function calls) +endobj +529 0 obj +<< /S /GoTo /D (section.12.3) >> +endobj +532 0 obj +(Set constructors) +endobj +533 0 obj +<< /S /GoTo /D (section.12.4) >> +endobj +536 0 obj +(Value typecasts) +endobj +537 0 obj +<< /S /GoTo /D (section.12.5) >> +endobj +540 0 obj +(Variable typecasts) +endobj +541 0 obj +<< /S /GoTo /D (section.12.6) >> +endobj +544 0 obj +(Unaligned typecasts) +endobj +545 0 obj +<< /S /GoTo /D (section.12.7) >> +endobj +548 0 obj +(The @ operator) +endobj +549 0 obj +<< /S /GoTo /D (section.12.8) >> +endobj +552 0 obj +(Operators) +endobj +553 0 obj +<< /S /GoTo /D (subsection.12.8.1) >> +endobj +556 0 obj +(Arithmetic operators) +endobj +557 0 obj +<< /S /GoTo /D (subsection.12.8.2) >> +endobj +560 0 obj +(Logical operators) +endobj +561 0 obj +<< /S /GoTo /D (subsection.12.8.3) >> +endobj +564 0 obj +(Boolean operators) +endobj +565 0 obj +<< /S /GoTo /D (subsection.12.8.4) >> +endobj +568 0 obj +(String operators) +endobj +569 0 obj +<< /S /GoTo /D (subsection.12.8.5) >> +endobj +572 0 obj +(Set operators) +endobj +573 0 obj +<< /S /GoTo /D (subsection.12.8.6) >> +endobj +576 0 obj +(Relational operators) +endobj +577 0 obj +<< /S /GoTo /D (subsection.12.8.7) >> +endobj +580 0 obj +(Class operators) +endobj +581 0 obj +<< /S /GoTo /D (chapter.13) >> +endobj +584 0 obj +(Statements) +endobj +585 0 obj +<< /S /GoTo /D (section.13.1) >> +endobj +588 0 obj +(Simple statements) +endobj +589 0 obj +<< /S /GoTo /D (subsection.13.1.1) >> +endobj +592 0 obj +(Assignments) +endobj +593 0 obj +<< /S /GoTo /D (subsection.13.1.2) >> +endobj +596 0 obj +(Procedure statements) +endobj +597 0 obj +<< /S /GoTo /D (subsection.13.1.3) >> +endobj +600 0 obj +(Goto statements) +endobj +601 0 obj +<< /S /GoTo /D (section.13.2) >> +endobj +604 0 obj +(Structured statements) +endobj +605 0 obj +<< /S /GoTo /D (subsection.13.2.1) >> +endobj +608 0 obj +(Compound statements) +endobj +609 0 obj +<< /S /GoTo /D (subsection.13.2.2) >> +endobj +612 0 obj +(The Case statement) +endobj +613 0 obj +<< /S /GoTo /D (subsection.13.2.3) >> +endobj +616 0 obj +(The If..then..else statement) +endobj +617 0 obj +<< /S /GoTo /D (subsection.13.2.4) >> +endobj +620 0 obj +(The For..to/downto..do statement) +endobj +621 0 obj +<< /S /GoTo /D (subsection.13.2.5) >> +endobj +624 0 obj +(The For..in..do statement) +endobj +625 0 obj +<< /S /GoTo /D (subsection.13.2.6) >> +endobj +628 0 obj +(The Repeat..until statement) +endobj +629 0 obj +<< /S /GoTo /D (subsection.13.2.7) >> +endobj +632 0 obj +(The While..do statement) +endobj +633 0 obj +<< /S /GoTo /D (subsection.13.2.8) >> +endobj +636 0 obj +(The With statement) +endobj +637 0 obj +<< /S /GoTo /D (subsection.13.2.9) >> +endobj +640 0 obj +(Exception Statements) +endobj +641 0 obj +<< /S /GoTo /D (section.13.3) >> +endobj +644 0 obj +(Assembler statements) +endobj +645 0 obj +<< /S /GoTo /D (chapter.14) >> +endobj +648 0 obj +(Using functions and procedures) +endobj +649 0 obj +<< /S /GoTo /D (section.14.1) >> +endobj +652 0 obj +(Procedure declaration) +endobj +653 0 obj +<< /S /GoTo /D (section.14.2) >> +endobj +656 0 obj +(Function declaration) +endobj +657 0 obj +<< /S /GoTo /D (section.14.3) >> +endobj +660 0 obj +(Function results) +endobj +661 0 obj +<< /S /GoTo /D (section.14.4) >> +endobj +664 0 obj +(Parameter lists) +endobj +665 0 obj +<< /S /GoTo /D (subsection.14.4.1) >> +endobj +668 0 obj +(Value parameters) +endobj +669 0 obj +<< /S /GoTo /D (subsection.14.4.2) >> +endobj +672 0 obj +(Variable parameters) +endobj +673 0 obj +<< /S /GoTo /D (subsection.14.4.3) >> +endobj +676 0 obj +(Out parameters) +endobj +677 0 obj +<< /S /GoTo /D (subsection.14.4.4) >> +endobj +680 0 obj +(Constant parameters) +endobj +681 0 obj +<< /S /GoTo /D (subsection.14.4.5) >> +endobj +684 0 obj +(Open array parameters) +endobj +685 0 obj +<< /S /GoTo /D (subsection.14.4.6) >> +endobj +688 0 obj +(Array of const) +endobj +689 0 obj +<< /S /GoTo /D (section.14.5) >> +endobj +692 0 obj +(Function overloading) +endobj +693 0 obj +<< /S /GoTo /D (section.14.6) >> +endobj +696 0 obj +(Forward declared functions) +endobj +697 0 obj +<< /S /GoTo /D (section.14.7) >> +endobj +700 0 obj +(External functions) +endobj +701 0 obj +<< /S /GoTo /D (section.14.8) >> +endobj +704 0 obj +(Assembler functions) +endobj +705 0 obj +<< /S /GoTo /D (section.14.9) >> +endobj +708 0 obj +(Modifiers) +endobj +709 0 obj +<< /S /GoTo /D (subsection.14.9.1) >> +endobj +712 0 obj +(alias) +endobj +713 0 obj +<< /S /GoTo /D (subsection.14.9.2) >> +endobj +716 0 obj +(cdecl) +endobj +717 0 obj +<< /S /GoTo /D (subsection.14.9.3) >> +endobj +720 0 obj +(export) +endobj +721 0 obj +<< /S /GoTo /D (subsection.14.9.4) >> +endobj +724 0 obj +(inline) +endobj +725 0 obj +<< /S /GoTo /D (subsection.14.9.5) >> +endobj +728 0 obj +(interrupt) +endobj +729 0 obj +<< /S /GoTo /D (subsection.14.9.6) >> +endobj +732 0 obj +(iocheck) +endobj +733 0 obj +<< /S /GoTo /D (subsection.14.9.7) >> +endobj +736 0 obj +(local) +endobj +737 0 obj +<< /S /GoTo /D (subsection.14.9.8) >> +endobj +740 0 obj +(noreturn) +endobj +741 0 obj +<< /S /GoTo /D (subsection.14.9.9) >> +endobj +744 0 obj +(nostackframe) +endobj +745 0 obj +<< /S /GoTo /D (subsection.14.9.10) >> +endobj +748 0 obj +(overload) +endobj +749 0 obj +<< /S /GoTo /D (subsection.14.9.11) >> +endobj +752 0 obj +(pascal) +endobj +753 0 obj +<< /S /GoTo /D (subsection.14.9.12) >> +endobj +756 0 obj +(public) +endobj +757 0 obj +<< /S /GoTo /D (subsection.14.9.13) >> +endobj +760 0 obj +(register) +endobj +761 0 obj +<< /S /GoTo /D (subsection.14.9.14) >> +endobj +764 0 obj +(safecall) +endobj +765 0 obj +<< /S /GoTo /D (subsection.14.9.15) >> +endobj +768 0 obj +(saveregisters) +endobj +769 0 obj +<< /S /GoTo /D (subsection.14.9.16) >> +endobj +772 0 obj +(softfloat) +endobj +773 0 obj +<< /S /GoTo /D (subsection.14.9.17) >> +endobj +776 0 obj +(stdcall) +endobj +777 0 obj +<< /S /GoTo /D (subsection.14.9.18) >> +endobj +780 0 obj +(varargs) +endobj +781 0 obj +<< /S /GoTo /D (section.14.10) >> +endobj +784 0 obj +(Unsupported Turbo Pascal modifiers) +endobj +785 0 obj +<< /S /GoTo /D (chapter.15) >> +endobj +788 0 obj +(Operator overloading) +endobj +789 0 obj +<< /S /GoTo /D (section.15.1) >> +endobj +792 0 obj +(Introduction) +endobj +793 0 obj +<< /S /GoTo /D (section.15.2) >> +endobj +796 0 obj +(Operator declarations) +endobj +797 0 obj +<< /S /GoTo /D (section.15.3) >> +endobj +800 0 obj +(Assignment operators) +endobj +801 0 obj +<< /S /GoTo /D (section.15.4) >> +endobj +804 0 obj +(Arithmetic operators) +endobj +805 0 obj +<< /S /GoTo /D (section.15.5) >> +endobj +808 0 obj +(Comparison operator) +endobj +809 0 obj +<< /S /GoTo /D (section.15.6) >> +endobj +812 0 obj +(In operator) +endobj +813 0 obj +<< /S /GoTo /D (chapter.16) >> +endobj +816 0 obj +(Programs, units, blocks) +endobj +817 0 obj +<< /S /GoTo /D (section.16.1) >> +endobj +820 0 obj +(Programs) +endobj +821 0 obj +<< /S /GoTo /D (section.16.2) >> +endobj +824 0 obj +(Units) +endobj +825 0 obj +<< /S /GoTo /D (section.16.3) >> +endobj +828 0 obj +(Unit dependencies) +endobj +829 0 obj +<< /S /GoTo /D (section.16.4) >> +endobj +832 0 obj +(Blocks) +endobj +833 0 obj +<< /S /GoTo /D (section.16.5) >> +endobj +836 0 obj +(Scope) +endobj +837 0 obj +<< /S /GoTo /D (subsection.16.5.1) >> +endobj +840 0 obj +(Block scope) +endobj +841 0 obj +<< /S /GoTo /D (subsection.16.5.2) >> +endobj +844 0 obj +(Record scope) +endobj +845 0 obj +<< /S /GoTo /D (subsection.16.5.3) >> +endobj +848 0 obj +(Class scope) +endobj +849 0 obj +<< /S /GoTo /D (subsection.16.5.4) >> +endobj +852 0 obj +(Unit scope) +endobj +853 0 obj +<< /S /GoTo /D (section.16.6) >> +endobj +856 0 obj +(Libraries) +endobj +857 0 obj +<< /S /GoTo /D (chapter.17) >> +endobj +860 0 obj +(Exceptions) +endobj +861 0 obj +<< /S /GoTo /D (section.17.1) >> +endobj +864 0 obj +(The raise statement) +endobj +865 0 obj +<< /S /GoTo /D (section.17.2) >> +endobj +868 0 obj +(The try...except statement) +endobj +869 0 obj +<< /S /GoTo /D (section.17.3) >> +endobj +872 0 obj +(The try...finally statement) +endobj +873 0 obj +<< /S /GoTo /D (section.17.4) >> +endobj +876 0 obj +(Exception handling nesting) +endobj +877 0 obj +<< /S /GoTo /D (section.17.5) >> +endobj +880 0 obj +(Exception classes) +endobj +881 0 obj +<< /S /GoTo /D (chapter.18) >> +endobj +884 0 obj +(Using assembler) +endobj +885 0 obj +<< /S /GoTo /D (section.18.1) >> +endobj +888 0 obj +(Assembler statements ) +endobj +889 0 obj +<< /S /GoTo /D (section.18.2) >> +endobj +892 0 obj +(Assembler procedures and functions) +endobj +895 0 obj << +/Length 301 +/Filter /FlateDecode +>> +stream +xuMO0 >a' G>.&Nt)'&V N*|=(BCVCـW5KZ(-f=抳j_W)xL9FЄ.ȬeQܖS/A1Raފn|jha61 +)lv] +"B] +-ҰYg=j7 aXrhIKCMAc03c^WoM^r'Muն!2>Lڭ_λsr'7=k +endstream +endobj +894 0 obj << +/Type /Page +/Contents 895 0 R +/Resources 893 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 900 0 R +>> endobj +896 0 obj << +/D [894 0 R /XYZ 90.925 770.89 null] +>> endobj +897 0 obj << +/D [894 0 R /XYZ 91.925 733.028 null] +>> endobj +893 0 obj << +/Font << /F29 898 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +933 0 obj << +/Length 872 +/Filter /FlateDecode +>> +stream +xMS@~ +p;ꨵ֎2Ӄ큄m5ِveÂH= '?^"pfp.OF'o.0u BB'DE%Ν{g̊-z_ +(}zCL?8>z>=x1<QF@nS*էr| ).C" + I q|"nOf/BD ,0{NuYZRKg|ʠ'GccF.Aʤ:{Uу2=ޅ@!͎Pw&yjB.T:j'Wvq^()&`(bocJKb ~̓+HuԖ[*15*)ۉ @!tFwif"IU[Djlmf4Ozqbd=C<ْb˄cyxZHUҢPi63nǯ7-Jd6`fwy#i +5.w8&_jh"Su}|l >;| kxa/1KmQk;lE ;݌wl8|WY!8^(!>k!<qH;H|-REo"|<ٸ]NTͶ7v?sy.X"7rk:#jnԿqw`tf}E=7׷"]-]M-G&%vhs㪟|Z׾1`##uϐIY/( +endstream +endobj +932 0 obj << +/Type /Page +/Contents 933 0 R +/Resources 931 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 900 0 R +/Annots [ 901 0 R 902 0 R 903 0 R 904 0 R 905 0 R 906 0 R 907 0 R 908 0 R 909 0 R 910 0 R 911 0 R 912 0 R 913 0 R 914 0 R 915 0 R 916 0 R 917 0 R 918 0 R 919 0 R 920 0 R 921 0 R 922 0 R 923 0 R 924 0 R 925 0 R 926 0 R 927 0 R 928 0 R 929 0 R ] +>> endobj +901 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 572.111 167.362 581.088] +/A << /S /GoTo /D (chapter.1) >> +>> endobj +902 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 553.934 165.658 564.838] +/A << /S /GoTo /D (section.1.1) >> +>> endobj +903 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 539.852 173.957 548.699] +/A << /S /GoTo /D (section.1.2) >> +>> endobj +904 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 523.713 194.44 532.559] +/A << /S /GoTo /D (section.1.3) >> +>> endobj +905 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 507.573 277.18 516.42] +/A << /S /GoTo /D (subsection.1.3.1) >> +>> endobj +906 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 491.434 270.983 500.28] +/A << /S /GoTo /D (subsection.1.3.2) >> +>> endobj +907 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 473.237 279.839 484.141] +/A << /S /GoTo /D (subsection.1.3.3) >> +>> endobj +908 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 459.154 201.404 468.001] +/A << /S /GoTo /D (subsection.1.3.4) >> +>> endobj +909 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 443.015 171.178 451.862] +/A << /S /GoTo /D (section.1.4) >> +>> endobj +910 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 426.875 189.319 435.722] +/A << /S /GoTo /D (section.1.5) >> +>> endobj +911 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 410.736 167.302 419.582] +/A << /S /GoTo /D (section.1.6) >> +>> endobj +912 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 394.596 157.34 403.443] +/A << /S /GoTo /D (section.1.7) >> +>> endobj +913 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 376.399 198.564 387.303] +/A << /S /GoTo /D (section.1.8) >> +>> endobj +914 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 352.335 150.485 361.311] +/A << /S /GoTo /D (chapter.2) >> +>> endobj +915 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 334.158 206.316 345.062] +/A << /S /GoTo /D (section.2.1) >> +>> endobj +916 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 318.018 195.008 328.922] +/A << /S /GoTo /D (section.2.2) >> +>> endobj +917 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 301.879 196.911 312.783] +/A << /S /GoTo /D (section.2.3) >> +>> endobj +918 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 275.911 132.592 286.79] +/A << /S /GoTo /D (chapter.3) >> +>> endobj +919 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 259.637 173.668 270.541] +/A << /S /GoTo /D (section.3.1) >> +>> endobj +920 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 243.497 216.617 254.401] +/A << /S /GoTo /D (subsection.3.1.1) >> +>> endobj +921 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 227.358 194.6 238.262] +/A << /S /GoTo /D (section*.7) >> +>> endobj +922 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 211.218 219.387 222.122] +/A << /S /GoTo /D (section*.8) >> +>> endobj +923 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 195.079 237.648 205.983] +/A << /S /GoTo /D (section*.9) >> +>> endobj +924 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 178.939 223.81 189.843] +/A << /S /GoTo /D (section*.10) >> +>> endobj +925 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 162.8 204.443 173.703] +/A << /S /GoTo /D (subsection.3.1.2) >> +>> endobj +926 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 146.66 193.025 157.564] +/A << /S /GoTo /D (section.3.2) >> +>> endobj +927 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 132.578 233.494 141.424] +/A << /S /GoTo /D (subsection.3.2.1) >> +>> endobj +928 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 116.319 203.208 125.285] +/A << /S /GoTo /D (subsection.3.2.2) >> +>> endobj +929 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 98.241 247.86 109.145] +/A << /S /GoTo /D (subsection.3.2.3) >> +>> endobj +935 0 obj << +/D [932 0 R /XYZ 91.925 599.032 null] +>> endobj +931 0 obj << +/Font << /F35 934 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +977 0 obj << +/Length 1159 +/Filter /FlateDecode +>> +stream +xMwF |,SiΩƴYYDlZ \:  :İBr .w?{}\|5^GW&q~*TlYi~p(\'b5ۮna|&س4֏YZ11/?ꖶoBH:nCŜ9./wq.r ԛR{\/Yv.F͉fCox#5 ; ?+f'\P$>=@ +&YxZ*1{MKZCqOLWQωZ'}# +ɘU>k?cq˝G W8ڬ{sGM@N- %7Ky\Ff;Un -&q#etD,Ź0sߧ])S6vnj`,lREv<H q_4l_9UQ +endstream +endobj +976 0 obj << +/Type /Page +/Contents 977 0 R +/Resources 975 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 900 0 R +/Annots [ 930 0 R 936 0 R 937 0 R 938 0 R 939 0 R 940 0 R 941 0 R 942 0 R 943 0 R 944 0 R 945 0 R 946 0 R 947 0 R 948 0 R 949 0 R 950 0 R 951 0 R 952 0 R 953 0 R 954 0 R 955 0 R 956 0 R 957 0 R 958 0 R 959 0 R 960 0 R 961 0 R 962 0 R 963 0 R 964 0 R 965 0 R 966 0 R 967 0 R 968 0 R 969 0 R 970 0 R 971 0 R 972 0 R 973 0 R ] +>> endobj +930 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 719.912 190.894 730.816] +/A << /S /GoTo /D (subsection.3.2.4) >> +>> endobj +936 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 703.773 213.309 714.677] +/A << /S /GoTo /D (subsection.3.2.5) >> +>> endobj +937 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 687.633 208.049 698.537] +/A << /S /GoTo /D (subsection.3.2.6) >> +>> endobj +938 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 671.494 224.647 682.398] +/A << /S /GoTo /D (subsection.3.2.7) >> +>> endobj +939 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 655.354 212.074 666.258] +/A << /S /GoTo /D (subsection.3.2.8) >> +>> endobj +940 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 639.215 227.147 650.118] +/A << /S /GoTo /D (subsection.3.2.9) >> +>> endobj +941 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 623.075 287.739 633.979] +/A << /S /GoTo /D (subsection.3.2.10) >> +>> endobj +942 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 606.935 208.876 617.839] +/A << /S /GoTo /D (subsection.3.2.11) >> +>> endobj +943 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 590.796 198.326 601.7] +/A << /S /GoTo /D (section.3.3) >> +>> endobj +944 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 574.656 257.035 585.56] +/A << /S /GoTo /D (section*.11) >> +>> endobj +945 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 558.517 189.768 569.421] +/A << /S /GoTo /D (subsection.3.3.1) >> +>> endobj +946 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 542.377 212.183 553.281] +/A << /S /GoTo /D (section*.12) >> +>> endobj +947 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 526.238 226.012 537.142] +/A << /S /GoTo /D (section*.13) >> +>> endobj +948 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 510.098 290.331 521.002] +/A << /S /GoTo /D (section*.14) >> +>> endobj +949 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 493.959 214.953 504.863] +/A << /S /GoTo /D (subsection.3.3.2) >> +>> endobj +950 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 477.819 198.914 488.723] +/A << /S /GoTo /D (subsection.3.3.3) >> +>> endobj +951 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 461.679 201.683 472.583] +/A << /S /GoTo /D (subsection.3.3.4) >> +>> endobj +952 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 447.597 163.437 456.444] +/A << /S /GoTo /D (section.3.4) >> +>> endobj +953 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 429.4 234.559 440.304] +/A << /S /GoTo /D (section.3.5) >> +>> endobj +954 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 413.261 197.459 424.165] +/A << /S /GoTo /D (section.3.6) >> +>> endobj +955 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 397.121 183.073 408.025] +/A << /S /GoTo /D (section.3.7) >> +>> endobj +956 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 383.039 203.068 391.886] +/A << /S /GoTo /D (subsection.3.7.1) >> +>> endobj +957 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 364.842 322.449 375.746] +/A << /S /GoTo /D (subsection.3.7.2) >> +>> endobj +958 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 350.76 253.299 359.607] +/A << /S /GoTo /D (subsection.3.7.3) >> +>> endobj +959 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 332.563 179.506 343.467] +/A << /S /GoTo /D (section.3.8) >> +>> endobj +960 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 308.498 147.905 317.474] +/A << /S /GoTo /D (chapter.4) >> +>> endobj +961 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 292.379 171.188 301.225] +/A << /S /GoTo /D (section.4.1) >> +>> endobj +962 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 276.239 177.255 285.086] +/A << /S /GoTo /D (section.4.2) >> +>> endobj +963 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 258.042 155.128 268.946] +/A << /S /GoTo /D (section.4.3) >> +>> endobj +964 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 243.96 209.384 252.807] +/A << /S /GoTo /D (section.4.4) >> +>> endobj +965 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 227.701 198.555 236.667] +/A << /S /GoTo /D (section.4.5) >> +>> endobj +966 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 209.624 171.178 220.528] +/A << /S /GoTo /D (section.4.6) >> +>> endobj +967 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 183.656 140.513 194.535] +/A << /S /GoTo /D (chapter.5) >> +>> endobj +968 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 169.439 177.255 178.286] +/A << /S /GoTo /D (section.5.1) >> +>> endobj +969 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 153.3 155.138 162.146] +/A << /S /GoTo /D (section.5.2) >> +>> endobj +970 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 137.16 177.553 146.007] +/A << /S /GoTo /D (section.5.3) >> +>> endobj +971 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 121.02 247.271 129.867] +/A << /S /GoTo /D (section.5.4) >> +>> endobj +972 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 104.881 165.648 113.728] +/A << /S /GoTo /D (section.5.5) >> +>> endobj +973 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 88.741 209.135 97.588] +/A << /S /GoTo /D (subsection.5.5.1) >> +>> endobj +978 0 obj << +/D [976 0 R /XYZ 110.6 770.89 null] +>> endobj +975 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1020 0 obj << +/Length 1176 +/Filter /FlateDecode +>> +stream +xrFz^BUD~q\*ۉ3 -* NiqHTF,! @p90;Q@9cfs@9v@p0fvo}\&O8((̀`o5y +o}!Jwā, ,n!?O(NxW޼)#$b}bs=EBZOoO1VZ6VimSSf>x"T)P3$r&m@#%SdO 8/&KB~v^yRӤ9̿lnT/r/QBPDK}=&iz^T)PlK&BC2j< }_BItby]”]Qᦈ:R0&,qɢbttDMtI^ m)\In V T|B +UhzKq<3SIi]~"~;M馚xm%Q# ܢizGfc1][cp~bof9~,}ҍ[ ly'MWtXI(6L +؃h~iwJk\PeMי7H87M`̒?0^ܑRm8 [T;I.ִ$%* \-ܓT @d6}fY@G:N̅C7%Qhw܉[oκ'ZWmĬ?tw.Iz j};S!5쬎*r6s_!xxBreʥ68=&R%{zeȺ)P4ʵoo(Aj X_/fqa\:Ch$!ʙQFH|M\z/o>fhG铎_kQWO8)R}%]Z;=ױ$E/AĨ.J1e1/uk8L*&<+IV,8ۿ noLq[qn-=A1%ι8uk;=MJ +endstream +endobj +1019 0 obj << +/Type /Page +/Contents 1020 0 R +/Resources 1018 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 900 0 R +/Annots [ 974 0 R 980 0 R 981 0 R 982 0 R 983 0 R 984 0 R 985 0 R 986 0 R 987 0 R 988 0 R 989 0 R 990 0 R 991 0 R 992 0 R 993 0 R 994 0 R 995 0 R 996 0 R 997 0 R 998 0 R 999 0 R 1000 0 R 1001 0 R 1002 0 R 1003 0 R 1004 0 R 1005 0 R 1006 0 R 1007 0 R 1008 0 R 1009 0 R 1010 0 R 1011 0 R 1012 0 R 1013 0 R 1014 0 R 1015 0 R 1016 0 R ] +>> endobj +974 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 721.97 237.608 730.816] +/A << /S /GoTo /D (subsection.5.5.2) >> +>> endobj +980 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 705.83 221.608 714.677] +/A << /S /GoTo /D (section*.15) >> +>> endobj +981 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 689.571 226.54 698.537] +/A << /S /GoTo /D (section*.16) >> +>> endobj +982 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.667 673.551 232.667 682.398] +/A << /S /GoTo /D (section*.17) >> +>> endobj +983 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 655.354 167.83 666.258] +/A << /S /GoTo /D (section.5.6) >> +>> endobj +984 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 631.289 138.859 640.265] +/A << /S /GoTo /D (chapter.6) >> +>> endobj +985 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 615.17 196.931 624.016] +/A << /S /GoTo /D (section.6.1) >> +>> endobj +986 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 599.03 204.123 607.877] +/A << /S /GoTo /D (section.6.2) >> +>> endobj +987 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 582.891 199.132 591.737] +/A << /S /GoTo /D (section.6.3) >> +>> endobj +988 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 566.751 165.648 575.598] +/A << /S /GoTo /D (section.6.4) >> +>> endobj +989 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 550.611 209.135 559.458] +/A << /S /GoTo /D (subsection.6.4.1) >> +>> endobj +990 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 534.472 204.124 543.319] +/A << /S /GoTo /D (subsection.6.4.2) >> +>> endobj +991 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 518.332 226.54 527.179] +/A << /S /GoTo /D (subsection.6.4.3) >> +>> endobj +992 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 502.073 220.502 511.039] +/A << /S /GoTo /D (subsection.6.4.4) >> +>> endobj +993 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 486.053 298.519 494.9] +/A << /S /GoTo /D (subsection.6.4.5) >> +>> endobj +994 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 469.914 243.466 478.76] +/A << /S /GoTo /D (subsection.6.4.6) >> +>> endobj +995 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 451.717 233.772 462.621] +/A << /S /GoTo /D (subsection.6.4.7) >> +>> endobj +996 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 435.577 224.368 446.481] +/A << /S /GoTo /D (subsection.6.4.8) >> +>> endobj +997 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 419.438 171.178 430.342] +/A << /S /GoTo /D (section.6.5) >> +>> endobj +998 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 405.355 203.068 414.202] +/A << /S /GoTo /D (subsection.6.5.1) >> +>> endobj +999 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 387.159 236.782 398.063] +/A << /S /GoTo /D (subsection.6.5.2) >> +>> endobj +1000 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 371.019 228.223 381.923] +/A << /S /GoTo /D (subsection.6.5.3) >> +>> endobj +1001 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 354.88 234.769 365.783] +/A << /S /GoTo /D (subsection.6.5.4) >> +>> endobj +1002 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 338.74 242.629 349.644] +/A << /S /GoTo /D (subsection.6.5.5) >> +>> endobj +1003 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 322.6 248.557 333.504] +/A << /S /GoTo /D (subsection.6.5.6) >> +>> endobj +1004 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 306.461 194.699 317.365] +/A << /S /GoTo /D (section.6.6) >> +>> endobj +1005 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 290.321 279.112 301.225] +/A << /S /GoTo /D (section.6.7) >> +>> endobj +1006 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 266.256 150.465 275.233] +/A << /S /GoTo /D (chapter.7) >> +>> endobj +1007 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 250.017 171.188 258.984] +/A << /S /GoTo /D (section.7.1) >> +>> endobj +1008 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 233.878 261.588 242.844] +/A << /S /GoTo /D (section.7.2) >> +>> endobj +1009 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 215.8 234.987 226.704] +/A << /S /GoTo /D (section.7.3) >> +>> endobj +1010 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 199.661 209.872 210.565] +/A << /S /GoTo /D (section.7.4) >> +>> endobj +1011 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 185.459 212.014 194.425] +/A << /S /GoTo /D (section.7.5) >> +>> endobj +1012 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 169.32 246.255 178.286] +/A << /S /GoTo /D (section.7.6) >> +>> endobj +1013 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 151.242 208.517 162.146] +/A << /S /GoTo /D (section.7.7) >> +>> endobj +1014 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 127.177 145.494 136.154] +/A << /S /GoTo /D (chapter.8) >> +>> endobj +1015 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 111.058 180.034 119.904] +/A << /S /GoTo /D (section.8.1) >> +>> endobj +1016 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 94.918 224.856 103.765] +/A << /S /GoTo /D (section.8.2) >> +>> endobj +1021 0 obj << +/D [1019 0 R /XYZ 90.925 770.89 null] +>> endobj +1018 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1061 0 obj << +/Length 1239 +/Filter /FlateDecode +>> +stream +xMs8:ޑnfN:;Iq@a6_7."@a~6zwC$䘃߀rJBǑ09x_ͦwɷt6wCD xs=@=~`}%R7bB}c"0s# {px=83%\2qdpA* IYf>f+~0ˇFxNe&#l u>:H{¥a}8IJֹ%,WSk18c V\ى\ `cRB/ҳT}عQWR +h! %Hӗ\se%H'HU%ɚCcɰA{=nԲc.Bp_dO*6Zؤ Kg*$mYj\|@ fVz5V sA8`10:MC5-NoZl\WiZfv HC[-ђchLu7,5TogV~0] Xj /h! [dsdG8S4-?8YG&ʔ^1\\~i2_r9|pGlD89&*WcVό-ϕ>I}4#gNfuM7$]VkZe Cj) L&(J 7^4zrƵ8+˼L_ݮ]mr&y$n۪6&!vasUImH%G hp/U}Iv7lU$ZCe&tMg a]ce'\fev t_+RR^}j)@>')Ur %\gOuXخدkz;.$ ɷ{b2Y!HR4Fv3qcqlys5dC;\78NF<ѐz'ɓ*՛J{F > :&yy6yl|O1 ofwB(\>A%jmQ2AKv> endobj +1017 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 719.912 241.443 730.816] +/A << /S /GoTo /D (section.8.3) >> +>> endobj +1022 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 703.773 260.741 714.677] +/A << /S /GoTo /D (section.8.4) >> +>> endobj +1023 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 687.633 210.64 698.537] +/A << /S /GoTo /D (section.8.5) >> +>> endobj +1024 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 663.568 182.674 672.545] +/A << /S /GoTo /D (chapter.9) >> +>> endobj +1025 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 647.329 171.188 656.295] +/A << /S /GoTo /D (section.9.1) >> +>> endobj +1026 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 631.19 248.079 640.156] +/A << /S /GoTo /D (section.9.2) >> +>> endobj +1027 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 603.284 213.12 614.163] +/A << /S /GoTo /D (chapter.10) >> +>> endobj +1028 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 589.067 171.188 597.914] +/A << /S /GoTo /D (section.10.1) >> +>> endobj +1029 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 570.871 243.953 581.775] +/A << /S /GoTo /D (section.10.2) >> +>> endobj +1030 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 554.731 250.031 565.635] +/A << /S /GoTo /D (section.10.3) >> +>> endobj +1031 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 540.649 175.591 549.495] +/A << /S /GoTo /D (section.10.4) >> +>> endobj +1032 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 522.452 155.676 533.356] +/A << /S /GoTo /D (section.10.5) >> +>> endobj +1033 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 496.484 212.432 507.363] +/A << /S /GoTo /D (chapter.11) >> +>> endobj +1034 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 482.267 180.034 491.114] +/A << /S /GoTo /D (section.11.1) >> +>> endobj +1035 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 464.071 270.225 474.975] +/A << /S /GoTo /D (section.11.2) >> +>> endobj +1036 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 449.988 206.166 458.835] +/A << /S /GoTo /D (section.11.3) >> +>> endobj +1037 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 431.792 283.784 442.695] +/A << /S /GoTo /D (section.11.4) >> +>> endobj +1038 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 417.709 209.105 426.556] +/A << /S /GoTo /D (section.11.5) >> +>> endobj +1039 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 399.512 173.24 410.416] +/A << /S /GoTo /D (section.11.6) >> +>> endobj +1040 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 383.373 239.511 394.277] +/A << /S /GoTo /D (section.11.7) >> +>> endobj +1041 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 369.171 167.302 378.137] +/A << /S /GoTo /D (section.11.8) >> +>> endobj +1042 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 351.094 180.363 361.998] +/A << /S /GoTo /D (section.11.9) >> +>> endobj +1043 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 334.954 273.433 345.858] +/A << /S /GoTo /D (section.11.10) >> +>> endobj +1044 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 308.987 158.615 319.866] +/A << /S /GoTo /D (chapter.12) >> +>> endobj +1045 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 292.713 203.556 303.616] +/A << /S /GoTo /D (section.12.1) >> +>> endobj +1046 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 278.63 186.958 287.477] +/A << /S /GoTo /D (section.12.2) >> +>> endobj +1047 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 262.491 194.699 271.337] +/A << /S /GoTo /D (section.12.3) >> +>> endobj +1048 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 244.294 192.477 255.198] +/A << /S /GoTo /D (section.12.4) >> +>> endobj +1049 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 228.154 202.988 239.058] +/A << /S /GoTo /D (section.12.5) >> +>> endobj +1050 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 212.015 211.297 222.919] +/A << /S /GoTo /D (section.12.6) >> +>> endobj +1051 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 195.875 193.623 206.779] +/A << /S /GoTo /D (section.12.7) >> +>> endobj +1052 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 179.736 170.062 190.64] +/A << /S /GoTo /D (section.12.8) >> +>> endobj +1053 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 163.596 245.389 174.5] +/A << /S /GoTo /D (subsection.12.8.1) >> +>> endobj +1054 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 147.457 232.657 158.36] +/A << /S /GoTo /D (subsection.12.8.2) >> +>> endobj +1055 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 131.317 235.426 142.221] +/A << /S /GoTo /D (subsection.12.8.3) >> +>> endobj +1056 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 115.177 226.58 126.081] +/A << /S /GoTo /D (subsection.12.8.4) >> +>> endobj +1057 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 99.038 214.953 109.942] +/A << /S /GoTo /D (subsection.12.8.5) >> +>> endobj +1062 0 obj << +/D [1060 0 R /XYZ 110.6 770.89 null] +>> endobj +1059 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F35 934 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1105 0 obj << +/Length 1236 +/Filter /FlateDecode +>> +stream +xKSFnX2Le2$$ 2 ݀dɑ@}ZiIS3X +jGчjD=`@MCN0-veit93`1Ԅ%rt}@j^޹PrP'}p'qE/ + @(Lb2oLadJ8'+yf/W\-1Lq?N3:a{b,Q^DAy( +Lށi݄VXԃn')PqFJy`J(fv5^?Ԍ5eUlo*2eE+jv%ZgB$f{B/<‡DAmoi27uU4lV/{%ɏI Q#;=`n 2mT)l/*Y^oHVw +Wg〆JPr26 MQ]cI#e[!$A˴}!~041&j,ݕb;(b/ZLD Y{WIj&g)I_DG[{kR?Kn]^)20 +Ƽɻ;lPhƬLC0j2N]I7!mnYAꂖ F怜uƻߕ"G5o@: ǡoSϱc/ܬH8-Q6-G,3˯IN*SYY?񼐳Kj4\eTf ݣ׍Ūu/Zy/O*J[{wLX\Z{#m~Ƣ3c85:jȱk/[}L0[1/M^K0kHiێՃ/Uc<sUUPDёMkKU٨Y^sJP@+2ĶxORuʸN"H?\=f$],xܗyZ{l[_Z|#a( YSv%Yggu6I&p@W=E {-C/þ~O MN36j|6!{ dkF4bv2z9'jN02'>z^k'ߎ{[n6EJZ a亏Qړ]BNyvzڽlz$q/gǿq +endstream +endobj +1104 0 obj << +/Type /Page +/Contents 1105 0 R +/Resources 1103 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 900 0 R +/Annots [ 1058 0 R 1064 0 R 1065 0 R 1066 0 R 1067 0 R 1068 0 R 1069 0 R 1070 0 R 1071 0 R 1072 0 R 1073 0 R 1074 0 R 1075 0 R 1076 0 R 1077 0 R 1078 0 R 1079 0 R 1080 0 R 1081 0 R 1082 0 R 1083 0 R 1084 0 R 1085 0 R 1086 0 R 1087 0 R 1088 0 R 1089 0 R 1090 0 R 1091 0 R 1092 0 R 1093 0 R 1094 0 R 1095 0 R 1096 0 R 1097 0 R 1098 0 R 1099 0 R 1100 0 R 1101 0 R ] +>> endobj +1058 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 719.912 243.177 730.816] +/A << /S /GoTo /D (subsection.12.8.6) >> +>> endobj +1064 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 703.773 223.81 714.677] +/A << /S /GoTo /D (subsection.12.8.7) >> +>> endobj +1065 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 679.708 154.899 688.684] +/A << /S /GoTo /D (chapter.13) >> +>> endobj +1066 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 661.531 203.565 672.435] +/A << /S /GoTo /D (section.13.1) >> +>> endobj +1067 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 645.391 214.136 656.295] +/A << /S /GoTo /D (subsection.13.1.1) >> +>> endobj +1068 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 631.309 247.6 640.156] +/A << /S /GoTo /D (subsection.13.1.2) >> +>> endobj +1069 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 615.17 227.137 624.016] +/A << /S /GoTo /D (subsection.13.1.3) >> +>> endobj +1070 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 598.91 216.836 607.877] +/A << /S /GoTo /D (section.13.2) >> +>> endobj +1071 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 580.833 251.496 591.737] +/A << /S /GoTo /D (subsection.13.2.1) >> +>> endobj +1072 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 566.696 245.23 575.598] +/A << /S /GoTo /D (subsection.13.2.2) >> +>> endobj +1073 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 550.557 305.005 559.458] +/A << /S /GoTo /D (subsection.13.2.3) >> +>> endobj +1074 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 533.784 328.916 543.319] +/A << /S /GoTo /D (subsection.13.2.4) >> +>> endobj +1075 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 518.277 287.073 527.179] +/A << /S /GoTo /D (subsection.13.2.5) >> +>> endobj +1076 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 500.758 299.028 511.039] +/A << /S /GoTo /D (subsection.13.2.6) >> +>> endobj +1077 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 485.998 275.118 494.9] +/A << /S /GoTo /D (subsection.13.2.7) >> +>> endobj +1078 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 469.859 245.23 478.76] +/A << /S /GoTo /D (subsection.13.2.8) >> +>> endobj +1079 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 451.717 249.274 462.621] +/A << /S /GoTo /D (subsection.13.2.9) >> +>> endobj +1080 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 437.635 217.941 446.481] +/A << /S /GoTo /D (section.13.3) >> +>> endobj +1081 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 409.61 242.29 420.489] +/A << /S /GoTo /D (chapter.14) >> +>> endobj +1082 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 395.393 217.922 404.239] +/A << /S /GoTo /D (section.14.1) >> +>> endobj +1083 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 379.253 212.96 388.1] +/A << /S /GoTo /D (section.14.2) >> +>> endobj +1084 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 363.114 194.709 371.96] +/A << /S /GoTo /D (section.14.3) >> +>> endobj +1085 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 346.974 189.568 355.821] +/A << /S /GoTo /D (section.14.4) >> +>> endobj +1086 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 328.777 231.541 339.681] +/A << /S /GoTo /D (subsection.14.4.1) >> +>> endobj +1087 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 312.638 242.051 323.542] +/A << /S /GoTo /D (subsection.14.4.2) >> +>> endobj +1088 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 296.498 223.8 307.402] +/A << /S /GoTo /D (subsection.14.4.3) >> +>> endobj +1089 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 280.359 244.283 291.263] +/A << /S /GoTo /D (subsection.14.4.4) >> +>> endobj +1090 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 264.219 253.389 275.123] +/A << /S /GoTo /D (subsection.14.4.5) >> +>> endobj +1091 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 248.08 220.204 258.984] +/A << /S /GoTo /D (subsection.14.4.6) >> +>> endobj +1092 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 231.94 215.99 242.844] +/A << /S /GoTo /D (section.14.5) >> +>> endobj +1093 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 217.858 240.089 226.704] +/A << /S /GoTo /D (section.14.6) >> +>> endobj +1094 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 201.718 204.104 210.565] +/A << /S /GoTo /D (section.14.7) >> +>> endobj +1095 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 185.579 212.96 194.425] +/A << /S /GoTo /D (section.14.8) >> +>> endobj +1096 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 169.32 169.524 178.286] +/A << /S /GoTo /D (section.14.9) >> +>> endobj +1097 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 153.18 180.921 162.146] +/A << /S /GoTo /D (subsection.14.9.1) >> +>> endobj +1098 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 137.04 183.681 146.007] +/A << /S /GoTo /D (subsection.14.9.2) >> +>> endobj +1099 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 118.963 187.965 129.867] +/A << /S /GoTo /D (subsection.14.9.3) >> +>> endobj +1100 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 104.761 185.355 113.728] +/A << /S /GoTo /D (subsection.14.9.4) >> +>> endobj +1101 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 86.684 196.971 97.588] +/A << /S /GoTo /D (subsection.14.9.5) >> +>> endobj +1106 0 obj << +/D [1104 0 R /XYZ 90.925 770.89 null] +>> endobj +1103 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F35 934 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1147 0 obj << +/Length 1129 +/Filter /FlateDecode +>> +stream +x]o6+xi5ok+6kԫ8BdɣnD*-ͮC+D?H9/sH*ބo +*A*ʀrAՇv9|7gͰ9( @r % ^># +7׀ +m !?׎Y?AAa (uAaDh񣎟 `hKFxaJNhnuVHKG:+(;l"1Zvz^]mM.DBV-겊uN00F%- _?dE@<#fMT5GxN8Ywyox]*-+m[BLg sA[C8Pޓ6oQ/jîOϐ𜋇OhU39חR?h/ 瑉U=T|ITVJ;觼n6tb`Ϸp7ڼ_IjM;#a-Sv뷔l-k3KXˆxuaMTK&U"LUgu)"{7UWHqy]|qH':άq7l<{9/e+?<cSd!z\*O@ƴBbLZZc* j:VxE %X^"/* +MS+W.Dwe.0'+`']7(˾,Ƨh1\~Sc'Y}庬zB##h` ^q]tvӴas+Q@ +Ȅ}_Υ6 +endstream +endobj +1146 0 obj << +/Type /Page +/Contents 1147 0 R +/Resources 1145 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1149 0 R +/Annots [ 1102 0 R 1107 0 R 1108 0 R 1109 0 R 1110 0 R 1111 0 R 1112 0 R 1113 0 R 1114 0 R 1115 0 R 1116 0 R 1117 0 R 1118 0 R 1119 0 R 1120 0 R 1121 0 R 1122 0 R 1123 0 R 1124 0 R 1125 0 R 1126 0 R 1127 0 R 1128 0 R 1129 0 R 1130 0 R 1131 0 R 1132 0 R 1133 0 R 1134 0 R 1135 0 R 1136 0 R 1137 0 R 1138 0 R 1139 0 R 1140 0 R 1141 0 R 1142 0 R 1143 0 R ] +>> endobj +1102 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 721.85 193.644 730.816] +/A << /S /GoTo /D (subsection.14.9.6) >> +>> endobj +1107 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 705.71 182.027 714.677] +/A << /S /GoTo /D (subsection.14.9.7) >> +>> endobj +1108 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 689.571 196.413 698.537] +/A << /S /GoTo /D (subsection.14.9.8) >> +>> endobj +1109 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 673.431 216.328 682.398] +/A << /S /GoTo /D (subsection.14.9.9) >> +>> endobj +1110 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 657.292 197.22 666.258] +/A << /S /GoTo /D (subsection.14.9.10) >> +>> endobj +1111 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 639.215 187.556 650.118] +/A << /S /GoTo /D (subsection.14.9.11) >> +>> endobj +1112 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 623.075 187.566 633.979] +/A << /S /GoTo /D (subsection.14.9.12) >> +>> endobj +1113 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 606.935 192.388 617.839] +/A << /S /GoTo /D (subsection.14.9.13) >> +>> endobj +1114 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 592.734 193.085 601.7] +/A << /S /GoTo /D (subsection.14.9.14) >> +>> endobj +1115 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 574.656 213.618 585.56] +/A << /S /GoTo /D (subsection.14.9.15) >> +>> endobj +1116 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 560.454 195.317 569.421] +/A << /S /GoTo /D (subsection.14.9.16) >> +>> endobj +1117 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 544.315 188.672 553.281] +/A << /S /GoTo /D (subsection.14.9.17) >> +>> endobj +1118 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 526.238 191.551 537.142] +/A << /S /GoTo /D (subsection.14.9.18) >> +>> endobj +1119 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 510.098 276.562 521.002] +/A << /S /GoTo /D (section.14.10) >> +>> endobj +1120 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 484.13 200.368 495.009] +/A << /S /GoTo /D (chapter.15) >> +>> endobj +1121 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 469.914 180.034 478.76] +/A << /S /GoTo /D (section.15.1) >> +>> endobj +1122 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 451.717 216.816 462.621] +/A << /S /GoTo /D (section.15.2) >> +>> endobj +1123 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 435.577 217.942 446.481] +/A << /S /GoTo /D (section.15.3) >> +>> endobj +1124 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 419.438 213.508 430.342] +/A << /S /GoTo /D (section.15.4) >> +>> endobj +1125 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 403.298 215.172 414.202] +/A << /S /GoTo /D (section.15.5) >> +>> endobj +1126 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 387.159 174.764 398.063] +/A << /S /GoTo /D (section.15.6) >> +>> endobj +1127 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 361.191 207.869 372.07] +/A << /S /GoTo /D (chapter.16) >> +>> endobj +1128 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 344.917 168.966 355.821] +/A << /S /GoTo /D (section.16.1) >> +>> endobj +1129 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 330.715 152.368 339.681] +/A << /S /GoTo /D (section.16.2) >> +>> endobj +1130 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 312.638 204.652 323.542] +/A << /S /GoTo /D (section.16.3) >> +>> endobj +1131 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 298.436 158.455 307.402] +/A << /S /GoTo /D (section.16.4) >> +>> endobj +1132 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 280.359 155.128 291.263] +/A << /S /GoTo /D (section.16.5) >> +>> endobj +1133 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 264.219 211.636 275.123] +/A << /S /GoTo /D (subsection.16.5.1) >> +>> endobj +1134 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 248.08 216.607 258.984] +/A << /S /GoTo /D (subsection.16.5.2) >> +>> endobj +1135 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 231.94 209.424 242.844] +/A << /S /GoTo /D (subsection.16.5.3) >> +>> endobj +1136 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.787 215.8 205.549 226.704] +/A << /S /GoTo /D (subsection.16.5.4) >> +>> endobj +1137 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 201.718 166.744 210.565] +/A << /S /GoTo /D (section.16.6) >> +>> endobj +1138 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 173.693 154.361 184.572] +/A << /S /GoTo /D (chapter.17) >> +>> endobj +1139 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 159.476 208.248 168.323] +/A << /S /GoTo /D (section.17.1) >> +>> endobj +1140 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 141.28 233.185 152.184] +/A << /S /GoTo /D (section.17.2) >> +>> endobj +1141 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 125.14 232.796 136.044] +/A << /S /GoTo /D (section.17.3) >> +>> endobj +1142 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 109.001 239.81 119.904] +/A << /S /GoTo /D (section.17.4) >> +>> endobj +1143 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 92.861 201.334 103.765] +/A << /S /GoTo /D (section.17.5) >> +>> endobj +1148 0 obj << +/D [1146 0 R /XYZ 110.6 770.89 null] +>> endobj +1145 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1154 0 obj << +/Length 302 +/Filter /FlateDecode +>> +stream +xݓn0w?ōa;I<TbjqHh~$ J`;ga ދT9pY7-K4$aC=> endobj +1144 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 720.047 177.324 730.926] +/A << /S /GoTo /D (chapter.18) >> +>> endobj +1150 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 705.83 220.432 714.677] +/A << /S /GoTo /D (section.18.1) >> +>> endobj +1151 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 687.633 276.033 698.537] +/A << /S /GoTo /D (section.18.2) >> +>> endobj +1155 0 obj << +/D [1153 0 R /XYZ 90.925 770.89 null] +>> endobj +1152 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1174 0 obj << +/Length 631 +/Filter /FlateDecode +>> +stream +xMo0>&j*U=D)={`"W_XnQri& MPfN9 QA +$p 8 +<{YipWc_/W9]H DI11%.+0-ZHV.VXcq7GEȃ~v8xi(ۻ_ la'a5mXOURʑճIyG?[s3gx ,foqj%]յ4Ɠ̾mҎ`+ߦ^sH$=D Xkv6|2d kg**8#@cR/UԴE$U&tK)3^ T<͊O'8[ٯZVhCtYȋ},m{3,5o1݆J1?y Q %$+a/ULhpȏy8E9Գ<) #LF}wMԴ ~G .JkS[+F5e%e]u)h9˕\r4ѫC.*0# e}& C!A63 +endstream +endobj +1173 0 obj << +/Type /Page +/Contents 1174 0 R +/Resources 1172 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1149 0 R +/Annots [ 1156 0 R 1157 0 R 1158 0 R 1159 0 R 1160 0 R 1161 0 R 1162 0 R 1163 0 R 1164 0 R 1165 0 R 1166 0 R 1167 0 R 1168 0 R 1169 0 R 1170 0 R 1171 0 R ] +>> endobj +1156 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 570.074 226.918 580.978] +/A << /S /GoTo /D (table.3.1) >> +>> endobj +1157 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 553.934 226.918 564.838] +/A << /S /GoTo /D (table.3.2) >> +>> endobj +1158 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 537.795 187.506 548.699] +/A << /S /GoTo /D (table.3.3) >> +>> endobj +1159 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 521.655 216.009 532.559] +/A << /S /GoTo /D (table.3.4) >> +>> endobj +1160 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 505.516 234.27 516.42] +/A << /S /GoTo /D (table.3.5) >> +>> endobj +1161 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 489.376 212.691 500.28] +/A << /S /GoTo /D (table.3.6) >> +>> endobj +1162 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 463.274 226.49 474.178] +/A << /S /GoTo /D (table.12.1) >> +>> endobj +1163 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 447.135 240.347 458.038] +/A << /S /GoTo /D (table.12.2) >> +>> endobj +1164 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 430.995 238.126 441.899] +/A << /S /GoTo /D (table.12.3) >> +>> endobj +1165 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 414.855 200.776 425.759] +/A << /S /GoTo /D (table.12.4) >> +>> endobj +1166 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 398.716 203.546 409.62] +/A << /S /GoTo /D (table.12.5) >> +>> endobj +1167 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 382.576 183.073 393.48] +/A << /S /GoTo /D (table.12.6) >> +>> endobj +1168 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 366.437 211.297 377.341] +/A << /S /GoTo /D (table.12.7) >> +>> endobj +1169 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 350.297 191.929 361.201] +/A << /S /GoTo /D (table.12.8) >> +>> endobj +1170 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 326.252 275.097 335.099] +/A << /S /GoTo /D (table.13.1) >> +>> endobj +1171 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [105.873 298.093 222.375 308.997] +/A << /S /GoTo /D (table.14.1) >> +>> endobj +1175 0 obj << +/D [1173 0 R /XYZ 110.6 770.89 null] +>> endobj +1176 0 obj << +/D [1173 0 R /XYZ 91.925 599.032 null] +>> endobj +1172 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1195 0 obj << +/Length 2787 +/Filter /FlateDecode +>> +stream +xڵZKsW𐪀Uxxm]MzKU>8>PDL4UtOπI/|onEƲXƋB.I,bqYZ}HefWn~/",f%,և_~ }LeQZ*ƕ~qs+>,fJ +LqElHkIvW4Ժ늍E(ŵ6^[@,T`{i0yC@mi?pyެ=Mn #ݝ/EvC>1_`mbo1[^c|Jh ѤA"ENxhU {i.]&KGnVFwiV枕msӆz z1**---NbvmҶ.=(km(/pVDR~Ww [Gg;k& [ذ y׏wЪkoU_-WZŖj| ]'~H'@TF?lIT+jb>j^UCց gf:i1@'!S5DB 4L y;~zjΙI?<~DʺU)M1ϣ`H3Y@k+2 4( Tj?QC0VO k}s+O:|O^vXyȗ36\54 mN|LgXqB"ߥ#m}(%> endobj +1196 0 obj << +/D [1194 0 R /XYZ 90.925 770.89 null] +>> endobj +1197 0 obj << +/D [1194 0 R /XYZ 91.925 709.842 null] +>> endobj +1199 0 obj << +/D [1194 0 R /XYZ 91.925 506.453 null] +>> endobj +1200 0 obj << +/D [1194 0 R /XYZ 91.925 437.665 null] +>> endobj +1193 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F31 899 0 R /F50 1198 0 R /F2 1201 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1204 0 obj << +/Length 1196 +/Filter /FlateDecode +>> +stream +xڵVo6_X>([}KdHѴbMhʤKRIa<ʑ2cwohzv~WQTeVF뇨ȫ,ZiB4Z7їz(?^㺞Wy|qnunv}$ҨJ*ђ.eNz7D HWK"@wQZ$yQfQRuQE +oYVmO6-"|wVr {޼OZռ5^W/̄piX.B^u?T_trBvKny]U}oϡ`C@YB!:cRR+({Hq.]@ݾHOcX@RM_puڒ@3\6jH/٩SƹĐut uG[dWd:]k1H?Y ɣ'gE0J2nEƱ#Gt*q`90n»‰۾ϱB%=d^ <`m)sC$sb/hV5זp( @iar3l+)HxcFjtM'(@s'WUA 6v .G!{< ۽ 1tTYN8jq{妟yb4A>$%$YtxᏟn?O!'RgNwڄ!Ql/BC" bn>^G bkAm~bS({ caJ@s +[+: l;ug: Kpj'tYLoF, +endstream +endobj +1203 0 obj << +/Type /Page +/Contents 1204 0 R +/Resources 1202 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1149 0 R +>> endobj +1205 0 obj << +/D [1203 0 R /XYZ 110.6 770.89 null] +>> endobj +1206 0 obj << +/D [1203 0 R /XYZ 91.925 709.842 null] +>> endobj +1202 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F14 1207 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1210 0 obj << +/Length 1922 +/Filter /FlateDecode +>> +stream +xڭY˖Wh`tS>c7+B% 2KH(EU>qFdHlO4Z>PDk2bRY\e?)^0_pEgla$&7B b ~3:+ڲ؆=˹7[ N/Pu*<m]35V9c]u6/m|sms0 z\!5ش< bo/lW,ٯM C2 CRa/5;v'ZfŧpL<[lLmt9sFJ uD6*Ƈ:1"鎇lLNiBX4E֞Cp>U~U`{:psH1Eco.w>SPǸUhWU[8ڐ0;,2n|pwӗe0dNHL/48P7v 5I7ϋ%}jcxg8y?Uu%6&ǻWbl21JSL&DdPE qbm_~ߗ?QUU٥dRuqy"P=scœYH_O}rXƘ!4gu ӏ?l @_ß$263Bd\q8&A =QːZxZ>ƴd\1RUz_hO0Lb0Qbwm#'Fs+'` [! Dit1^ axFsvǫ |R^~LV@A8`"f + + k}H ,'9.XC5g-1A6GZT>zY/+r, P>/_O_04f5dx7靳TR16Z_ +endstream +endobj +1209 0 obj << +/Type /Page +/Contents 1210 0 R +/Resources 1208 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1149 0 R +>> endobj +1211 0 obj << +/D [1209 0 R /XYZ 90.925 770.89 null] +>> endobj +2 0 obj << +/D [1209 0 R /XYZ 91.925 733.028 null] +>> endobj +6 0 obj << +/D [1209 0 R /XYZ 91.925 316.868 null] +>> endobj +1208 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1214 0 obj << +/Length 1867 +/Filter /FlateDecode +>> +stream +xڽX۶3} X8 @ҵ=s|y4mZ33< 8H\o<߻.(RGݝ;Ipk'ȽǽgWŵL%:rH1^Sk˷7/} vח#9ٛL)^"X(/RV[wg2n ɸ {f?8IzJ;C1U, ,b;<ЧZ} #jrBcOyL5"a9ɝb;It%ReZLJ1v@V~.1gbW|/<"4  +Ҥ$N 3IϢC_b~`˝c٧2Mj IьiI>uSPvufqG6{0צJIԲLJ6~R;dnL6٦ͱiU=pӶ*j +hS7mqV,ǀ'^$z$XJ*I˴A]ClZǻ0dҖ|(m6gLU@L' @@縼Tu\N:m_Ц*j$X3W({UoTJ6vC[*/IusxcL;PCeXS%{Ly=0O(Cnp_jǟm4S ",jdްwpS\)yM%M}p=h˳C44|cl"m7-a[AMomۻYth%Ե>_66^>R [ORpm*=Oh&S\ofw ׆@;1 aOĀÑA]\^AD +|VB^mElQ|4? yLIm.cz%o* +endstream +endobj +1213 0 obj << +/Type /Page +/Contents 1214 0 R +/Resources 1212 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1216 0 R +>> endobj +1215 0 obj << +/D [1213 0 R /XYZ 110.6 770.89 null] +>> endobj +10 0 obj << +/D [1213 0 R /XYZ 91.925 604.198 null] +>> endobj +1212 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1219 0 obj << +/Length 1785 +/Filter /FlateDecode +>> +stream +xڵXݓ6_Ab:NGޒ6mki<`m y:߻+ >ڙZ󷋩qrvO$:˵G p1g;xy~.~0mFǚzcM{x ZVheuY֮燢hR*-Ӳeyl[J4p4w;Q eYRz^Yxa4*.BJ篵%:DzuFΝ=OHӜ$Q4> V 9 X }QE񓴲Yg ?Sxt; |{kÈo4'>,Z\]Y?Q>nzUq`}ۿo7:S]K+I /2J.?XU0vVeڴzժūx !yJЮo]u?ˋJ0pC 4P^m +duBZ> p͔^0ŝ߿k_w~uRo/yLMDmaZ2'Zi?&S|0?fϐF'*?X`!2@a%kLB81}Q6frs)ҬVRx^Tn0l(iJ8#s-A唑^FMmVvY| &y)Ɔ}#m.I|=;ijKU^H:^Vg[`3`V av._^XGKh< "q࠿Is)1G|'amWL B' QUJ4"7j٥wŮi>L-VEYGIevB QT+&P>C\7b[)N, >y bk.{@3`ɬys@zpևhzӟl5Ie(<[Uyi~/jӥ(kYF&J+sDW*ge)DVω[Ywma#OEsN"E9X9 PU%t,.S!Nc%C-2jc}3ǽX:ÖFijxUaT ,mNB/oFTMNBjN v"٘4ľ5NaUTPQ&nt}/6Ͼ̫RYoV& +Xr z pcFߝ E&UYfZwD{=/ZMrJf0rZE;RVlK/5 ̀;C9c0AG}. mĞ08W=' B427U(hra}!V`Rk*Թ&iCQs5œioɌABbЉspIBRGp^ .݄ŠZZxW7!V] ~/3L,7%9ޣ_؜N1૦.Va=Ѻ&ts:]7p Xsa5jŭPmֺ#J|c9 U_{ `m[ YvEۗ'u+d+Ц\X m䪰rc/}|z +0R`O0d"露%\}<,ˬb/R(v}[_$=T'EN_e6zm +,wW3Ncߦpv8S C"><ݟɑiָP +endstream +endobj +1218 0 obj << +/Type /Page +/Contents 1219 0 R +/Resources 1217 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1216 0 R +>> endobj +1220 0 obj << +/D [1218 0 R /XYZ 90.925 770.89 null] +>> endobj +14 0 obj << +/D [1218 0 R /XYZ 91.925 436.823 null] +>> endobj +18 0 obj << +/D [1218 0 R /XYZ 91.925 293.287 null] +>> endobj +1217 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F58 1221 0 R /F35 934 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1226 0 obj << +/Length 1888 +/Filter /FlateDecode +>> +stream +xڭX_ O<_޶K3yH@KͮD$^)HH(vAݛ.2Xo*$σL"Mu~~^,"h,8׋d~ÿ>/~_pa}N$N*ʊ~=Z!^ieiY.|]|.iSQ(w4(],8{9V@,iX57\𑷎tXq4>[ +Oˤ̟Q.YV nn^E8rI1ߓHD rX$(Ak:S{Yg 'yK"@HwŽ%+V9W {Aș`j^ +bt^rm拜zr3q"2շEhXI\L2-Lj%>HN֜8aG@Z NS Z<2V [(odqю5͘= 38MAiU;6jؖߺ^Y-\٥')xMflBx! X(ј?be ]wBۑ΋CƖT +Yu~=oZ+s TX2H(Bv?ܸLw /$JlfqXPz!sI˼ n ^bu}z` ORDü*&AS11ˊk.Z@>t{ p|:3~\6@>kݷUnA7hMwHo=m  +̽:ǿv'嶣21@:Fu\>~TIs3'J4* 7Q/BOqhͳv&6߹s9Rັ4Cb7n &XzX{s=_2o<`xKt䲄{aSe7p;K +_;pzw5uZ|Ý_/1T +endstream +endobj +1225 0 obj << +/Type /Page +/Contents 1226 0 R +/Resources 1224 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1216 0 R +>> endobj +1227 0 obj << +/D [1225 0 R /XYZ 110.6 770.89 null] +>> endobj +22 0 obj << +/D [1225 0 R /XYZ 91.925 733.028 null] +>> endobj +26 0 obj << +/D [1225 0 R /XYZ 91.925 639.678 null] +>> endobj +30 0 obj << +/D [1225 0 R /XYZ 91.925 502.292 null] +>> endobj +1224 0 obj << +/Font << /F39 979 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1230 0 obj << +/Length 2086 +/Filter /FlateDecode +>> +stream +xڥYKWdSU#}֎']WCa$%R!)N~}jH Ո lF@''?}3AFR,"'J$(IS_/}/)A8}?74ooqٻ3$ CEB$>`ČN])Cqhop_RNzv<)\!w?pl¨M5"}9w*-Z'4-OҲnKUiqhl$l$>ڬ=6r*#'S R.cNpj#ٍ [DZmU` nDKvI@+"j C~E}lܗہ16e]ic8~IۢiG/@ADU&+6~dedKP>kcp`_2dm>\ƉL@hmȶMZۢ*=pbugɧ|H$wa>[ۯSA +A8b\V:l֭ -™KEt8Y +uX2&պu熖]f;g=Vu5{{yȫim@ :k頞Յi dnWZ=$p#,/ Fo mA3x%vCP6;gJuo\hGnu6źnlo1t\GB@7VO#@ *t8!9&=rw#8R5XcRGncZ:rwؿ "+צ7Д&rSG oJ>| U$/-أfe|dkmHqV38.7c݆¿F衞VE0@.^TIxȚ"l/vP4! +aM9Uvy/O#YC880n=D ,E8͈I8fĨ) cpQ)h1nB_:hXA'ʽ#%H˸pߤ#+AY^ouO}QNGY@rO` P9`p;kߛH{+ Pz(I|('Y!m$ (e +:c0 + Ma1bDF411X~Inn3 B&x} 2Iw/ق0d)Hun H%jRDC&Q7~. aZ㸛=б0 +lýBOS?wXLcNgwlj + 6#:Lpm*UlxzR#In܆AR 9sCøz69 +8{wOe 8Ε'*@P^@Y4p9gQWp 'n.AV[l"rHPkf(ДMQ^i k:ED)-sKպĿ?VoF'^mmŵIvu{@-ǐԠGbY0qO?jakKs fv8>ބac|Cdޖ>t<|ݔ+`M2g\fesƣYEڈh`'>KOkvUЕ)snX@B.ʱ1;v\d1{E5.*܂@Qx'r&n:e{Uyh:Yb>(JͷY'`c{{SEUh@`P=Up ::ɳ!= +endstream +endobj +1229 0 obj << +/Type /Page +/Contents 1230 0 R +/Resources 1228 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1216 0 R +/Annots [ 1222 0 R 1223 0 R ] +>> endobj +1222 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.667 671.892 276.113 682.796] +/A << /S /GoTo /D (section.1.4) >> +>> endobj +1223 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [300.401 671.892 312.357 682.796] +/A << /S /GoTo /D (section.1.4) >> +>> endobj +1231 0 obj << +/D [1229 0 R /XYZ 90.925 770.89 null] +>> endobj +34 0 obj << +/D [1229 0 R /XYZ 91.925 657.197 null] +>> endobj +1228 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1234 0 obj << +/Length 2144 +/Filter /FlateDecode +>> +stream +xڥYKs6WrjGO0l$r@D*"6РDJF2/ uѤSB|{GG:LQI͈,ϓ߿t?)W4ed2U&޿7OMׇ&xЄ%Ub!Fdߏ %9lߎ=2f,ZšSeǩ4DZ]ڇ,JC*َ{ 5,-gL+Jq[B]B#;:SE[T;N4@N# KB +zgԇ I6zӨے&ĂoaA'٘ f=v R_ '\A $3 4a@2M "hʔ0 %hBkMr0#*a0" AT= b 5,CvH قׄWgEҟݙ)/5 zXO1?MМB@5F 6oB6!,|Gc|޴ <$v>U[_̻`S +PΟ3, ^ΖķP( $d{nw;ʆ-9SІP$ot R/ARYJT[#Zfͣ?T6XkvQ]@=Ό-Fz3}(R!,=Ol*!cap*pxoXCu+_RpZ.Se^L sV%' gN]#>!gh U{!Q~B _cwB) EѝFjN\-Mfmm^žZK6ž5pfm ]vD:7!=倿 +o2T"G˗Vi=*9\-0kO%aTCq 9)4v0>RRDtGb +&s.]C-oP1idqӋwTC oQ}.`Skɧs8"*+bŻn|&ꎬӢ<)no>r ]2#V;`r{bǧ.BlmJ)UfmUnS<'|oXpE/ݽ%^*ҡ1QDiЋ 潆^_I-sZ; A9;[X%{O=f|xE8Byo->5Χg߼3ۥxRtmm٬_RḬ{8bmk=g# +endstream +endobj +1233 0 obj << +/Type /Page +/Contents 1234 0 R +/Resources 1232 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1216 0 R +>> endobj +1235 0 obj << +/D [1233 0 R /XYZ 110.6 770.89 null] +>> endobj +38 0 obj << +/D [1233 0 R /XYZ 91.925 733.028 null] +>> endobj +1232 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1238 0 obj << +/Length 3903 +/Filter /FlateDecode +>> +stream +xڵ\Ks7WMQ9Y{S-Ǜ@Ic:50Cq!l](΀~|^rr;}y'QDD{+Șw$?zw eur<_x~?<Ћ$Nk;?9&R&SQZHm׳vBFh_89%/HJ9}xլ˷oԮrr0kxLg&s?yNr:{7bin{x=l3_.XORMiK+/zq5l|qm+u/fů-\_ϛf:?ߘF܊%C;Z"kR4NC"ݵc9ponٛ/6 mOMzXofͪi߼_׬$rYo&_gw &`vے:=u(?jn#0>[͇u3[{7׍?5Iw͞؋=ca(fbgm :^;}\]-מ f٬!-T 0 `߹G!siee2njMn>Y~qvcU eL-->/Q:1泒2 :7o IqvbMYۃn ʷ\; _o*=i}FB=F3^ll=W{ԀsL~_³v|Ip':Zġe~zMj an8϶ZC~B3;HR uHeBϺ,‚yrJbɿ$>]I +6huv|RSdH}مe:ɋ~@\ bbbסwYSzײMuNWjS݆zRjZҋC躹8c6fqY~\7i05&{w[0`4{{ K/^jVi*)fumV0pJrmN{y ZJJGߐZzAУWp}EKf>][7_?_J>^&K 41! +SYʉ&61m +!; |\?'RL2@9ֱ:/abRcu@@n+xfSHOOZNٸ~~-]#668Rs;Z$5BA +KP +A $^v͡0-vc@sn@m;hE&ნLtϘJTd}1Pr~Vc>gPe>b2=UdvH "YȪ"UIxK!ٷL <0l +9FT:k\j=' +>n!y<ABES(. + -h@%=0],]TeubP17lQy;Di;2IuFp_y/a9 9DY@pT HX?~H[+@` ."i@'Ύ,7F>2lmMŤrU g>2UtXѡ+Td놏 ip\XK?r!E1HQD@LrבpN( +s*dhAipJkMGק},n0%1Nެ(MbY?FY_"A<2FjPj Jdd& #k,dΌ_ |2žl/p.) 5<}dQ5Y,.N. l-DRĜPzD׋U*j6}=)2*LA!I;gmiGJvJ=BDzW1jTNVFI:(s`TG:!ԑ"p4~> endobj +1239 0 obj << +/D [1237 0 R /XYZ 90.925 770.89 null] +>> endobj +42 0 obj << +/D [1237 0 R /XYZ 91.925 733.028 null] +>> endobj +1240 0 obj << +/D [1237 0 R /XYZ 91.925 660.15 null] +>> endobj +1241 0 obj << +/D [1237 0 R /XYZ 91.925 641.903 null] +>> endobj +1242 0 obj << +/D [1237 0 R /XYZ 91.925 598.998 null] +>> endobj +1243 0 obj << +/D [1237 0 R /XYZ 91.925 558.469 null] +>> endobj +1236 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1246 0 obj << +/Length 2921 +/Filter /FlateDecode +>> +stream +xڵ[Kϯ`STpN-:G(DY (Q39"fCPf;拷e8uv{ 23Yv;~_8rEsF&Si7 o''~{o7 B39FWQ_h6gfg~*\*$\/7=MU$RsT3 +2b&SF)Ϳ+e|fSTqmA{-%K/pbUjF'jV4j-gXQuY5WM>?>.faଈSVr~8^jZWP\h1v,c*xѩRhUnQo;M. LXϋ<>JTaęor=+S. eZs"?F<@$VDlE3tJs/CjMk"{ot4D)8CL* s &K{GPi. i [vP+-$1ڀ(@ /^vJ_4aN*ɟRfm9!K!faIJxThG-elN%pp&Ř\&ɘ;0DE`3 + cdSˈ0X >SgoWk913.]+W {ܦ6 +g)JR)P(wA+w<*@Q9B&dGlZvXI+)1rUlr-},q!Sma DNA=@WjW7 +i ~֛r}?!Ʃ@iPWOּn|wn8 SyQ +)ׯc6Aǹ!4x-G vV8dR`#*℡ְ|CNoݾL5lww%kr,&`reHhe]W,y?fY@ DaVȪC@-nyz[jm;jXm|V(VeYgP/0ӞձlHyhx+9.>*j_`;h +IF[Xy,Ŭi šG귃5L#W_"P^ӖoB*މRV~t +=5i>: +7`K_2sKUf2\xZNX.etDͶz8-a_ + XQ _fvxeFmElڽl"`>A}M#0@1G(*c6v]|, kPsiΫW@%:,{զy:Y߸Z(l#4(2Ib-Η-|ƄG-#OQc bluJk7TvP%* #Ǭ,X`B8!Ĝb` =PuÄٳE;UڂLҺTnZe\\UTE\c$! u>G`F'X"uO,%.՜#%eG@kZaƈTc SMgu#%zSybnd$ʒUP[ *'GfbUƈE>JQDpH|s##Ze#' S/mζ{ +h*l=q}lB01=+bmQP}OWCQ?#c<~W|\cp80!`T(Jb{*;}V?b=шp !;ⱒI2lCEIJ= LZ@7F8 HLXHsp¤fܕ۸1Z ZDQ܎dGz9.̆22J(~>p溰&P-YĈt6$"ea!$Ef ŻU߷:IzVl2a5x źx8:\I4ܿ]9{E|tR#nS|!F oT3٪7Q{PһFv3=]oy:zYԏ4 籜߲ojnwTw7GnzBz:r)6AG +endstream +endobj +1245 0 obj << +/Type /Page +/Contents 1246 0 R +/Resources 1244 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1248 0 R +>> endobj +1247 0 obj << +/D [1245 0 R /XYZ 110.6 770.89 null] +>> endobj +46 0 obj << +/D [1245 0 R /XYZ 91.925 733.028 null] +>> endobj +50 0 obj << +/D [1245 0 R /XYZ 91.925 467.694 null] +>> endobj +1244 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1251 0 obj << +/Length 816 +/Filter /FlateDecode +>> +stream +xڵV[o0~ϯIi6`}˺kwincgU5Ɔ%Ծw.9 8K'gȏ@z@ 0$>int| ]DȹvOF8q>ο,ܻr2O'?&XYA! I  l3C Wg&౻@J.bukyw<(Ib 4]"~efYȭlD0n+l+gI0el-֬a͉Ot''͊睑3ޠ[z57WEQ>qU;9#E>Nt%>; {UҦ/-m)2nK$ʬMYfY~ۗ׫")gf +ֶ"" +Ũ/۪ CJڧV NƴĦՓȩ+*ꉢ**|ctd2'-BVӥG$k&-Qv*5{ն-B~a]cԮM +fMqrm4vI} ̯7W׳m\?E3)扲W5遢=wL+Y٘V(SRtCoLKg'YSH(8sȹP +,yZ2h^tB]zwEQiap)^M90KHE^e/$m3Ln?"@ +endstream +endobj +1250 0 obj << +/Type /Page +/Contents 1251 0 R +/Resources 1249 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1248 0 R +>> endobj +1252 0 obj << +/D [1250 0 R /XYZ 90.925 770.89 null] +>> endobj +1249 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1259 0 obj << +/Length 1724 +/Filter /FlateDecode +>> +stream +xڭr6D\i2C&%9Pmq‡JRIܯ J$Mkl+ .hpEpJq #vJJ SjVb1diye6 Q~ߴiv[i{TiEp6'J +w}5lsl?[k5 rKs@$LXɾ"C]v}ܶiuC͡1IT'$ E+F) ߝB,yAو#Bw!1E #[b}R uZy,0P׈0ʥjB,GZB[Kl5X6:z V],\K|vYmq5'\ևj6%a,`AMӔӏ>-ym +.CC] x!mP`Nݧs6uwuH܇bv(o}d10R\NiQ ӘLcXZ_{|91 MX P![iC'LDPJU|Pil7uys T L^k :9X7nm)<ᔧ0@\'#OgHZ(8g wE}ӴOV˰NizM&ڒ#E^_?Xu6=\~yW^2&/q:kݷ}ѳa)>k< +$FJL(G>Sg4Ӄ vPJ9V猸BE>sDgz@a /#G'MixgjL'>8>cb4aZ3(+ك^% \!X=j FCfY D}kw2Ϊ`s >8@c?nf +endstream +endobj +1258 0 obj << +/Type /Page +/Contents 1259 0 R +/Resources 1257 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1248 0 R +/Annots [ 1253 0 R 1254 0 R 1255 0 R 1256 0 R ] +>> endobj +1253 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 507.11 110.356 518.014] +/A << /S /GoTo /D (section.16.4) >> +>> endobj +1254 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [134.645 507.11 151.581 518.014] +/A << /S /GoTo /D (section.16.4) >> +>> endobj +1255 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.416 239.414 175.371 250.318] +/A << /S /GoTo /D (chapter.12) >> +>> endobj +1256 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [199.66 239.414 216.597 250.318] +/A << /S /GoTo /D (chapter.12) >> +>> endobj +1260 0 obj << +/D [1258 0 R /XYZ 110.6 770.89 null] +>> endobj +54 0 obj << +/D [1258 0 R /XYZ 91.925 733.028 null] +>> endobj +58 0 obj << +/D [1258 0 R /XYZ 91.925 492.415 null] +>> endobj +1257 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F41 1063 0 R /F14 1207 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1265 0 obj << +/Length 2773 +/Filter /FlateDecode +>> +stream +xڭ˒6>_V ؕڕ85bdʿo7J#F>AnAۈFwFXu4[Dj͈,ͣfm^?x3>[ak!,?jvG?xHVDPF֗CLO k--{=&σ}!%XEio]KHe~Vؚ8]qԤq$خ0UѶd)C6/o < Sq@pl?6@]؏G6bwEgul`:}gMQ2(~y5UM +U.VpQ'L؋_% LE^W-ݧ~'3|=ϝ(qLC⮘͖y:~_Ұ`go,htMQQ7,mmצLu{{$&4yFvjd0˺pR[^p<,wuEqQd`qN3;z۝4єBfyr"!! lHTAAb7:@Oкy7sD8!&QƢS> 3o:|AeNqYش 04hhmnv"щ}40B?@TD!2eLh;z^AW>_i;w^Aمᩂ +IJ?)@)9C[}\HHF=a yIBK #/5re(92`Q|AQ]dbIQ2d22Ȼp()#<c@Hv);<BiL1.At\"AwK$Kg!^dHB;Rn,KGa(F} +@b)JO\:í9e(# KΧ/U| ?;ŸPN5_ \?<> Ì7뉠IS@r,pAh]vqdv@zHL;qG/Q2Z iܱz~mZOHs 0\N1.S 1uIb 4I G*<6ut-gzj,b|F:\V$crcT'`J +ˆ5vp/?>G85Y}] *0;Z*l0ݯ*W7a"u5bw7n*|oL]OZC&Sl k;U9!jԢVX2l"Uo#mDw"[K,a&ǂ2|S"6,p;2JZ &.қ2o^M&:,.H}3۴(a)b+\cq1T ._"Ѕ@86?Wíc2 43*kf7UYe<;}ε r}ׇF*\aQ%N +U;6 2k'CU poa+w ,XsAOq8(i[eJ}:t &Daq^5vp+a?O +!;W#+߻εxlLG63|d`gV+`0Lӭ ;3ՐI_6U g#m~G&;lN5\@T~ +6XݷC +endstream +endobj +1264 0 obj << +/Type /Page +/Contents 1265 0 R +/Resources 1263 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1248 0 R +/Annots [ 1261 0 R 1262 0 R ] +>> endobj +1261 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [186.111 182.527 200.557 193.431] +/A << /S /GoTo /D (section.4.4) >> +>> endobj +1262 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [224.845 182.527 236.801 193.431] +/A << /S /GoTo /D (section.4.4) >> +>> endobj +1266 0 obj << +/D [1264 0 R /XYZ 90.925 770.89 null] +>> endobj +62 0 obj << +/D [1264 0 R /XYZ 91.925 461.132 null] +>> endobj +1263 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1270 0 obj << +/Length 2165 +/Filter /FlateDecode +>> +stream +xڵXKs6WSC|:;ۙUrI1E*|F7(CgUh4~|Pfq^|J^Yy{OYgQƑywW^^|\irf7e)EC/((cA.Ro{\ܽ }( '{,x W8VCo0>-7}T\Hơ@TOkNm^׊?|Y1񬈃,*ͻ ?"-P D% xX>jPVFBt~R\eg3$Ap\~$ mȞ?Խ>24vŨ$u&!AuSPHiHyU~.|!B8`8+p]a?v@Hѧ]˄ +P6r[p>g80h6Omj; 9*=ڄ*{֦n&(I/)"VݰyL6mRA + 7i ., ٷxT2M}̀p Zbf 0d,ݫV[!q#4(n}0>\@;th9 `@fX[E5@ڴ05!^Ӫ%o8MM%|CՍ ',ą{gN哱\!)p>(giۮ9ވfx!% U@ToaMN07ܨޅAҢT3 :m<3XZ$ R u=[llQ1{gDPxFR\EQX.\xdO1C%7Ci`ṘS'|(Zڦ49G8Q8,3hZ5fa ΍٫@qգ* @6w冊""V#cG3?wرblh 4">O ƨUHIpCQw*Vd;1gH9*uG۞\ʱN`-eL`29.4sKA@ٶ6(5F n/k Y$^6qfBڮ(Fa 'FK> endobj +1267 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [328.733 477.272 414.327 488.519] +/Subtype/Link/A<> +>> endobj +1271 0 obj << +/D [1269 0 R /XYZ 110.6 770.89 null] +>> endobj +66 0 obj << +/D [1269 0 R /XYZ 91.925 733.028 null] +>> endobj +1268 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1276 0 obj << +/Length 2020 +/Filter /FlateDecode +>> +stream +xڵZɎWhi) t@V +u/T^YiOT^>"\<0Y%^^R[Fh~8%Zs|#--%ae/Ж+˟_FIba~͞ Ι0eiۡlB_2G5b~.-Zun0ΗS2å6Y> ?e|g/o<6a_]nM׼1חTc?GaUֹk`Mz ?ú +<>}/;  תl;rQ&\tY8:n"߅ƪ,6y{&4"fӉ dX}*v+K({(j3VrVY/L3^)r,ڽIvhǦ=܅VP:Hgkϫ]?A6c]Db* $/Gcxjp(w~Bl0G"pKAu7EMY~!iƲڇoǧK'x#c㽎*^)&ߌ߿ #TqRk2P'Hr0Hf"8) LRKT犈"3!",ܕ"ˌ6҄+1 #n dH'EFp +yBjF`ˢpjv,(}] +b|pvE+ +俛QYf"M_99aϳZIz!8 | +ՋV6 BO6+L L[$Pn&DMXh$aihNHɄ3[;{$"$ǩe}7(Ob~;a~TQa-R_X nOF +Nr,bg\(Xcu# e`No"`XƝP&iS&6\?q K[5`svG(Ad-QQh{\-8y]TAakJp +H2Vں[i|Q/a#9iA.# { ) '[ DM,/Tg$wr3z;9bO'K4wFF,ra65ˈsuSD#_|@"Xp-7'%oEYJݯȘWcXh + I- Q30[ bkڍq,cݝ\&I7Ig0 pc0HW2DHIW%UiQodʠD1v y&x+we,6ġa!c]xX_1A%fO0I~ q :7MI-i]s(*T(_)${EԂkQ`2~Ii SF9egPd>z 0AQH~e({̯>UB(_$Čǽ!R6XK( 5%ƛdVI8w@Ǻ@9\Eʁ(N⁨?qܿzt&yzW7'a%Vz}mՂb(7q_hy( I!SʾB]9oOgCs^EZ/Gm>_&EynU&NW,۞ިOX]$Q'40G +endstream +endobj +1275 0 obj << +/Type /Page +/Contents 1276 0 R +/Resources 1274 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1248 0 R +/Annots [ 1272 0 R 1273 0 R ] +>> endobj +1272 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [251.815 479.015 271.242 489.919] +/A << /S /GoTo /D (section.16.4) >> +>> endobj +1273 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [296.78 479.015 313.716 489.919] +/A << /S /GoTo /D (section.16.4) >> +>> endobj +1277 0 obj << +/D [1275 0 R /XYZ 90.925 770.89 null] +>> endobj +70 0 obj << +/D [1275 0 R /XYZ 91.925 733.028 null] +>> endobj +74 0 obj << +/D [1275 0 R /XYZ 91.925 155.08 null] +>> endobj +1274 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1282 0 obj << +/Length 1826 +/Filter /FlateDecode +>> +stream +xXKFW(WaޚTXXWQ)࠵gmd$m6_dK^CN~|m-#:y5<tTFۈSQ* DE%~˫ٛOӄ +34Mϫ7o7ɏ @HRh|0bZEn]:| &$EX('8G\݇` @<~q0'x; .%Rxk=k"bE("Xzk_xc7[S;#-JҩPKꀓL% $." 8* +#\YO,w3REhoʟ*']bHHw,:d"hz יԑL"$R=YWh N}W"/)_P./H_`I* -] nR"EC)`oDCHWg2$z9!5SJ<ώ'Τ %E䐔ωͣ + MΑc{tO,i<8}!qk`sH7ǐK w~J ލ)+T#d@9&= 1R69?@BXC 5FCB%)pJ˞OEEp 8ʇT7 ԍQLHgSshqm]?%)v03zZx\-\0JU0Bڭ72֬w:8fi +0OK3]:ʃMasŁks-{,!kzUS@9o ҳ鹖s 2Dwm#M)iv}789OL{;WSہs؋sؗFc[cH4ՑBJ|ld.H$]% VP8VCU;vf blU-CEnt؂ha6U>@|a]:8K;9I6cͰ2/-uOv :AQy[-}q׫7魵n^=Tqq1cr|:: hd㩃rmvyl3oHIxDػ,\ oKLmʥJbP= _% +endstream +endobj +1281 0 obj << +/Type /Page +/Contents 1282 0 R +/Resources 1280 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1287 0 R +/Annots [ 1278 0 R 1279 0 R ] +>> endobj +1278 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [312.685 393.716 327.131 404.62] +/A << /S /GoTo /D (table.3.1) >> +>> endobj +1279 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.247 114.02 108.692 124.924] +/A << /S /GoTo /D (table.3.2) >> +>> endobj +1283 0 obj << +/D [1281 0 R /XYZ 110.6 770.89 null] +>> endobj +78 0 obj << +/D [1281 0 R /XYZ 91.925 609.447 null] +>> endobj +1284 0 obj << +/D [1281 0 R /XYZ 91.925 551.898 null] +>> endobj +1285 0 obj << +/D [1281 0 R /XYZ 91.925 508.062 null] +>> endobj +1286 0 obj << +/D [1281 0 R /XYZ 91.925 476.182 null] +>> endobj +82 0 obj << +/D [1281 0 R /XYZ 91.925 410.986 null] +>> endobj +1177 0 obj << +/D [1281 0 R /XYZ 264.628 377.995 null] +>> endobj +1280 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1290 0 obj << +/Length 2094 +/Filter /FlateDecode +>> +stream +xڝXYo6~У1t[3<Xuؑ I}ÖpV8\lW?PlL%n! }*" ?1@_Q3nzF8KV G'=yףDMYv0eGMj <  /ۜDs1B.> gqlM> n^-[(Ћœ! y^be bOν`7H`p~'ks U + { IVs4B\4B{ 98QI)@6'cp1008aM$k[͑`%0餟Pp]bc2&!"UPKZB}Х/mXv:w혲u1YcdT}ӽT)b,<V{#C͡˔z# 4aՆWR +0RAFQ,:P \?A [ﻢ$63z[%j*Ӿ"p zgɉl0fc}:|>f5I=zߵpu-mi宭q|FT-0gv#h$@Wš_>ѫ K:+>+gޗb t9|o@H@s=?GOЏ> endobj +1291 0 obj << +/D [1289 0 R /XYZ 90.925 770.89 null] +>> endobj +1178 0 obj << +/D [1289 0 R /XYZ 264.628 728.266 null] +>> endobj +86 0 obj << +/D [1289 0 R /XYZ 91.925 401.322 null] +>> endobj +1179 0 obj << +/D [1289 0 R /XYZ 284.334 343.424 null] +>> endobj +1288 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1296 0 obj << +/Length 2900 +/Filter /FlateDecode +>> +stream +xڭZs_΄9!x<ܥwMЦ9d:<}ҜL$U>(2lKblb_]Kg_ft7W~,'zvs7\ehFg|9W4z4nO׿t_W rFrfFb-~ΖiFCofqEGDQ̸Z~)[GAܑZ]υǦ,]Od?_3ؼRm]oʢ +϶)v]WmX\4e>eywhV6]ظ?]ѕ*a cݪVe\ѭJl.r6gαCZ}jC}~p@0֛MBnKل#vb<7@ZA' oWuHO &sxԑ=&L"CNwfİcqݔ,evu+vp$5a}d!R/H!" ]3#RZ{kN0vM ď`6i#ݹEzOZ1HnKhPBF*a\S>M[~ݻ1`\WT˸.!y˦LhC9ҾM$+Ǜ#My9ޓZϧibpܭ* GY$6O9KCtZiƐK jᑐ񼐧YbL0*=B P1"d) LjOj3zfR)4zyQt@ = +a|&6ugow@Ȑ.yF9js]"&NpL^0sfEȶ%ϊE'R_,Bv _9YGǦԮ֟)>9_TXv b ENQp' TpS9Y4IZOҪ0B"=x,4˜^BgLsd0\~|))&:FEFQ@:/%D)>*u*]xzR 7L\乑7))&zS$wP9aV/#^I\&y+91m-tq51JP>RQ/ý3";R +[.d +ub,rH?"a9l=FJ]"z#Ex+.af̜p"q^(#M[`9,KΫCe45[¡5qBZSqpSf 0/p* W>Vuhş}Hr#2/0"E6Aכ:t( ([䇞'ciDcQufAJl95hM,Hp,oG_,&H*;ˑԳ`gHd)P D8xwS=%; xe[! TGNs0|-Gׂ+#F)*FcSlUHΧZN0Rk; BKN:;x GϏjip8\TO!ZIۛ:t(8DT'9ob=֜!S2C#T M>k.Մ'!F.'=ME2ֿdV iŪvѣ͛/_P 1>J7YBm|e`Gkw:*8b: G/kB񰡐ЇtM+=\ytp _ usE* %Іܽ2Rg~u|ͳY +S$9;v0{Pp%p)DD 3`ٻ.Ub{~Ǟ[bݒKm̨j 6X)/w[2ۗTh)BS1,kb}z_IY7nc{jĊ*:M6E> endobj +1292 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.413 307.683 154.368 318.587] +/A << /S /GoTo /D (chapter.12) >> +>> endobj +1293 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [179.943 307.683 196.879 318.587] +/A << /S /GoTo /D (chapter.12) >> +>> endobj +1297 0 obj << +/D [1295 0 R /XYZ 110.6 770.89 null] +>> endobj +90 0 obj << +/D [1295 0 R /XYZ 91.925 543.334 null] +>> endobj +1294 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1301 0 obj << +/Length 1806 +/Filter /FlateDecode +>> +stream +xڥXo6_(uC[toAi[-y dɖtC(4X4x5z>=y) !Iģ`$D<#`:>/~zv=m<ኆ'*˛t@ a$*J-T0ی>|(IY΍UEup3uDQ5R)g~kКG_| GE-rs껢yZ.wO6I[裠 CUqj $X ȀϷf9 ?g3oJ e+<%ǿxso]Ϳ `=Dh3,I3 +;U6[! ^Wە x +{2l&7AbţW#w\]jp=d Kt +۬a0v0nd[J˥rWlm2m{,`mw,b-̬Xtߟ7ė?n Azmؼ f 픗ˬ6W޹nZコ7p-={I&ךW}iGN,_Ӷev~[B4'dCq:94PmQ tN(v|ȍyz YbY$jA /ӣ:EV>0 3n-t @pGmzt2\@JͲشc]aNr[{mRqw <mUT#0]0A.[ H1(ɱ\D1aQ܇d*>e{f]Cc۹;GҦ~-W6\&'wid0ҘĪ ?3ΝXc_qVI:2d +<ÛUD<BŻCDC&Q8 7()]c!p.0G!|sB+bd0~8# +WD#`yN=;fzc\ +լhWDpLȀN81Vg"[{(۽HH$C sJC$0J]*1pgvbiM٠\O p|.[,kb_9ͩ꺅[oC? >b6Kh} +.DO5=QZ:nQ=h0Ţ@t"_X(Gzڟ5tRVZ;w ?ox<`Wjx܆9RJ8nO(@D%\1!Q +endstream +endobj +1300 0 obj << +/Type /Page +/Contents 1301 0 R +/Resources 1299 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1287 0 R +/Annots [ 1298 0 R ] +>> endobj +1298 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [243.386 352.689 328.665 363.593] +/Subtype/Link/A<> +>> endobj +1302 0 obj << +/D [1300 0 R /XYZ 90.925 770.89 null] +>> endobj +1303 0 obj << +/D [1300 0 R /XYZ 91.925 664.719 null] +>> endobj +1304 0 obj << +/D [1300 0 R /XYZ 91.925 632.839 null] +>> endobj +94 0 obj << +/D [1300 0 R /XYZ 91.925 316.385 null] +>> endobj +1299 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F58 1221 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1309 0 obj << +/Length 2495 +/Filter /FlateDecode +>> +stream +xڍXm۸_! VF I_Q=6M +6"K^npU`U!g晇޳'WAe"uv^Kb%"տ݇|#bba4}l})(=eJd:(Iyߥ_<),^̃]J!KiTJ_*dqD:=& )՝jT4yWի9򲭩fI[󛔺2۟ޜR| ͤJ(lR+X?hE–'$.XD*$ɁPBJ·M^I geJ +|6 S\E~n0F=O9s-jlcSoL ueЗ֋dix%PtR5LǺ:M6, i>'Nsf ~ؓZRy86h[h_ϵߚ~'иdNu. f<{~\RknrSl#A=X7b[9΀ZCUͷL\h`dLy7X{5=/7z<#CHG._#*e6^8TʇOtIgԏ3 =RL”Hq +px)h3"g|r&aS+ +-ր"a^.eUi(#aA=W,pǰ[<RR0?3Y2!uE2d E .2댢d$`}&Eʴ,NO .%YU S{- ?PNy OrF4]0!ASQH?GQ9_>b ), R2ANkO$lF@,BՒzf -PO%CDdq5}BᮕN -:1^NeJ# r Ċ> L#I J0_YJB#R!#$1=T:a$BqAh!g6uGUgMCpQj;ȼ(]'8lTF +mM\0P7F\1[Ph؞`\<|薚gdDϞNM~Zx3"W{십V1`,;)"ی\{81C&Wpr_m:Bݍm./pgq`'fK#9@Js*' URtl4736)>UqK@uhj -X+7Mݴ *AkxRCykNpc=x ԅ"5wU[?5] VΫ[%CӋý'SnRPwS2Ꮔ +VԺW8Q` DaO fDv<8./*UW*m#B4NEsSAAƲ 8pB[r^/X^y_3Fv견\_0u3k7ws$k_o:! jt`h|:8p\ˊ8}=H\$p"k5^ KD@p,F#\a]g6eCb!w?Dz;nJljXoh*I 8}._~ZN‚CLpA@ ` H8Flw +Cz76-[d {Nh,n˴TE];-5 +Z Sc-4ݠ$&},l$*܏C4蚍ixk,AIFRmM,)o'!=Gqv@vKq:w-$? .P@m4ԥ-qM7l[M#1rEq$^ޖqvqdr?}KsbߢW#aTT>4Qj9RQl&M $<RPm%Bз<1-^F 1{1 wu>(_|xXƑT&],xo0v8젽F?w$PwG2J|X ב sS_ ͣLQ,3r0Z7oGW+ mOmgY! +_Y{B/g,^[覯A(t@H}tVo$G#M걵) j%r̠k Xz> endobj +1305 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [263.161 561.449 277.607 572.353] +/A << /S /GoTo /D (table.3.4) >> +>> endobj +1306 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [353.223 385.394 438.502 396.298] +/Subtype/Link/A<> +>> endobj +1310 0 obj << +/D [1308 0 R /XYZ 110.6 770.89 null] +>> endobj +98 0 obj << +/D [1308 0 R /XYZ 91.925 634.201 null] +>> endobj +1180 0 obj << +/D [1308 0 R /XYZ 270.082 546.223 null] +>> endobj +102 0 obj << +/D [1308 0 R /XYZ 91.925 343.275 null] +>> endobj +106 0 obj << +/D [1308 0 R /XYZ 91.925 310.091 null] +>> endobj +1307 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F50 1198 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1313 0 obj << +/Length 2265 +/Filter /FlateDecode +>> +stream +xYIF (bU,.cx2fH UQn\Z^oި"("i " KH8X뷯/^k6Z*u*ſ߿0EER΢L`Y71*ޞZTB%oWC4`֒@F(H"2$yEr +|,|?uXUyn;ûvM@󂘶` AAvJ):yz@-8\;nH^_>t;R7VmӕuN9DDE!CRF(?^9@$V{Z~\)f]daBR(`` MCM!L[ /+^0jU*nxajR2$t9 +-fjNjժ"gĚ(3qX }ݭyvAs.vٺD7DHZI/,&aecj){3:ߴb 6e$`Z9,n[w=쒀`2mYʝFVy +?>o[^O:9z^y"QSzyiat 劌cS5,qJ'*M+)~ zSc{z?rs+bRWZC; UXrgAzvHnWO "6Otd1 LݻtzcO)ChiU[w Vk^+DxGS/&@H#2 %_ i4Ri2VǦnSe:$P[D:=("GJ+ < <BFr/mSOM^<6ngqA+yQ'}@?mGRg8U}2fE 4Z7u/7|l1Ktx/Sz_R[uS~@6p|yn "Ry<֏>cЍ|v*p)\v; +֑>0C>?T]vy +6Mg2a\rjSQk_M50.`LuMNe3F +*P2A O dP \rh B)@( *)"}Iu).? +TYaei"DˡԨ.rReAD8\Yƨg'J^ +C̫A%Qfq$ΰ`0:dF\ܜ #%C + +rD܀<c{8 CY N$"Q^Bvq'A4+&@Hge&REd /FE.bDIRT(E*G" 񳐒=WiA($,$|#w U0!< qBUw1pHHSB%xEd RDZ>! 7!E$EY(D R,E3ȅ$.5:Cv]HMjzQjl*X\صiB曅n)I6%jR.LK%O9c_W?xa75t;|l?a =榦<6G-\(4S&p[ C9=}z$Z|֦~D\5O)nvQrZݾY7mԷ$[h}bXMvUZu~J)E^} owLK/N2`dFe,D*^!导@hl0aM u_XXvro6\2"06rڏ u뻕|j~YC~GTEĘJUن= +D L-2mR.X@U(\>Yxfmuo4̖eذUjjUSE.Ψk0C'v~j;E/wJ22в;AC9l1-Ɯ!dKmUrI[/O7l6mhY[aǩ9]jHvogPp\?UYJSq ED> endobj +1314 0 obj << +/D [1312 0 R /XYZ 90.925 770.89 null] +>> endobj +110 0 obj << +/D [1312 0 R /XYZ 91.925 733.028 null] +>> endobj +114 0 obj << +/D [1312 0 R /XYZ 91.925 486.319 null] +>> endobj +118 0 obj << +/D [1312 0 R /XYZ 91.925 407.603 null] +>> endobj +122 0 obj << +/D [1312 0 R /XYZ 91.925 122.553 null] +>> endobj +1311 0 obj << +/Font << /F39 979 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1317 0 obj << +/Length 2664 +/Filter /FlateDecode +>> +stream +xڕY۸:))~HI5($6wW>=-w3([澘yf,6͟7߼IMZn$Rd:7_=yJlhWZlzǛׇ_nb8PlMGTLeQͱyQlN0FDIo^%?n%BdH\,(ɊM;"vmPgxn'%͛4g"ҪA1e|D'=tC/BAYs[3`в +Z IyIL1)Ke{|)ڴ#A(1[@LSBHR.B +@(p4J:1iT`.{s2HXkN&OgSřtzw[9H[ȾxMyH=˅}QXQ\SנZ]y^EE/F櫜-)Ob)"ʝϨvFJlPs}d.hDTnUVD:> %f!H$:ͤb3:k $)cvO@{|Bc09.h&CcלA, dBgWJw~1Pޛ9b^!/@LH=tؖ|.G^L hmcǁw8AfN- c8#]$NU֖[w"MO:DTm6ԕhWË5d+m5r;pn1hxP5\-oPoHO jYTXacg/| $ :;H#r&5r_?XV0+7v=PjAN$I+ + Ò}[))(8sgW9h\ x&x+ߥ=b5r4l htJC 8숞ہ$Ҋ:Fp2%r"L"RYX`=AQXC۔muj]xΝs]u^OlH`/ +>Bװe +1< + ]Hlf+ЂxcMd=u!,&A0vV1g2u8:0Z!x dHwQ:'F2'&҆1{;ZPFEƧ:h JiScO[w0kN0J,̤)jAx;RRy:ÝEضxR ) yk0 h#u +el~EP- jo>%Q -r"f*Xο~`wƨbl|WY$[cX`,dvyfp+y`A"a yZkU- \s [m7XcO ۱QNcG͖@.B3{0T"SucAΐ8K\R3FB8#Bm 6Ch{T \?u^ߢu^ԱrY98FB]a ^`_dĥ f_|͚޷7 +n]k[02]kX;q!fy+7@БP[dYŢׇ; +endstream +endobj +1316 0 obj << +/Type /Page +/Contents 1317 0 R +/Resources 1315 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1321 0 R +>> endobj +1318 0 obj << +/D [1316 0 R /XYZ 110.6 770.89 null] +>> endobj +1319 0 obj << +/D [1316 0 R /XYZ 91.925 733.028 null] +>> endobj +1320 0 obj << +/D [1316 0 R /XYZ 91.925 716.923 null] +>> endobj +126 0 obj << +/D [1316 0 R /XYZ 91.925 341.605 null] +>> endobj +1315 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1324 0 obj << +/Length 2323 +/Filter /FlateDecode +>> +stream +xXK8-63" nE6̶5%GioHInuy}0b{;vūAe"UP"JRDJzwxOw+@,WQ/zy'LLE^%" "8^~|dwoVQ~}/yP2#!4dG$㵺|s-_@ޫVD"oC{FkJ\^;nQUGd}G'L |(3RP$[e#[]4:oe'J6[TL ? +TRNV$ᭂH$Ntr#%y%WWU~8<̈'B$ +C'ѯ~-@ͩ.N70#i>9یNݐ<}o(*En,C'+ǘȸՂ*DH8|%c!C:, -%iAS4SSy0A>UٕFt + wysNsV`ctF&2[ _EKネSp~m]MFϙ ?Hg, pyEZ3yg)MS-( 'N5fsY#d'f^d7>g7?t6m90yE +^Sx n_D ol5g8ܬ1lmkGp<?ۚĬ U?+ G DV00ݺ:0WSl L`C7˕TP4vJH!qMHAc[D(j͇7/مsH*N&`Rʖl4Hw!o2Uߡ$#&_*2DElQ:.Y*<aUW\LL\k5dRVn"DM!LJn-ɞ(6lziv>Wt,bOo  N]ecmkfOo!%%nq4c,L+(e8zkv=@}H"kbL9]_]Yc~_k)aQn_,Y-fSSwm,t} bib쌫->ha89ݤa^i `~@fp)A)km iR)iW?Dua*@{2"+yDxR7/k@w.WK*H/A?9b C 9!IlW%&E"8B,G$LG.h0ZtWVG[ n]@.SXHϡ> endobj +1325 0 obj << +/D [1323 0 R /XYZ 90.925 770.89 null] +>> endobj +1322 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1328 0 obj << +/Length 2426 +/Filter /FlateDecode +>> +stream +xڍَF}B +0;d7O~OxRX8yP<(_U]~a_źV+oϫw۫߫t4j_R08E(vxsڕ(vs۬tu_HeX*\?~ZyB@VW +`^6W^yS(/D!tSwE׷Eح]{NjNsmwt74v }QÉA&ySRt\izw`!C-v~wq6%]_|MBig&LNɃ*2󽧢?40Qi(nyspBk˪| h `i:s8vC~@2LhU vH hQf9%T\8jzԵngFB`kEjQ $/À MN͎v[ܦ.O(DMY!jԩ90{PoZ>f]Ghf?`v)/ s(>/lv<.8T4S]Iǘ ĆCn% 7d/Egep6˩\!2|l )"', tO yZaU#s2uwHe#x].^ߌI>J@l-mDg 8EcXP3lj0FIXjh6aLnN&&P B8R~ s~|YK'*͔q,qB<ƒJ@VOJH]yV)G]|" paV-hCltЇ(16tnJf<)#tPQ  d7i8;-z)3P9!AM憁?-R1N= VEQBm:hHќsMМ入YX b[47ɰQ "jD2[*m*"x7&Ɠorv*t%,KPttwDjeK)&KaqItlR"NEv&DPv t6톩t~n(>h8kRwt/;-~ Tga}3pKTq"lU(qL 1O:P\-8Ti5mt]nhc6DŽ[_躌RD2^j;*Ჩ)q4ɘqelFc@0LKz\jK ,DXk`4 1hA"tٞ O3 *fYJ[XxP'|B4SEvO]jʮylj_)6qK/[IV= .h- \ XRp7l8]Cq"R9#•/\;"rĐ[N{: DNNxikm8#Gh ۦ"j{Ɯy`"//"o!y(³v'HQ[0(WEhiD[UVgTq_źABt(L> endobj +1329 0 obj << +/D [1327 0 R /XYZ 110.6 770.89 null] +>> endobj +1330 0 obj << +/D [1327 0 R /XYZ 91.925 472.639 null] +>> endobj +1331 0 obj << +/D [1327 0 R /XYZ 91.925 452.714 null] +>> endobj +130 0 obj << +/D [1327 0 R /XYZ 91.925 405.765 null] +>> endobj +134 0 obj << +/D [1327 0 R /XYZ 91.925 148.031 null] +>> endobj +1326 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F58 1221 0 R /F50 1198 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1335 0 obj << +/Length 2297 +/Filter /FlateDecode +>> +stream +xڵXݏ_"VFϊHI]>8o}}~r%8L*SqۛOo׋  @JyGyOqPA%e̽*NRhX(9*#oM $ +[ہy]Y,|jagME4/ݪ7֚qYasG]*F%5D{o+fێN(3?]o4oCUQ`%u?t;+@O-˨( +? &/M©(-\{*3{ ]3'H(u64qӷGռb<+< |+qmRuO,E,"QpoP`h3[ [KR̜R5r*sy 2a>5 +IaH>}# +zg+ޝ0t_k_ȇ$J+E Gn]}=Dn\V]Ԍ:֘1R_]Ԯݝw/59ضZ^Hf{=ag fl謍cv1kϒJ,[shM@~s[ ęs]aft)9eaU]Z:USw煆;oSf1%k'0М0uǏˏq#D;yw29,zkC'׈ |u[3 2=\pqPJ>-Nen\&J`]0 X y@Cq2v*HsË4h+̖%%C2A=ObKtVD*JRnnsy7XHqݚdLMD෇S4  t>̮<~h\ +朼F@?!q.`}|\.UqVb%;ڮ3 ΜLpn'xVeL``{UPU¦i<Ԗ΢$̢ΘE Z])weE=o /4 c/k6zGx84,7hvp/JR/' +$ph "^ī@3O,k]%\[r#9MN>Ty%`v)JuKʢd6:w!}MT@S"chWʙ*n{+(}TyYPr:*Dp?b\J(8 +ެUаϹx/q`uyX70h"uݘغw@;" 6 ӽ#Ż(#y~)iyy]]uEJ]LN޶}X^Uxck +N ZB ;PMhrI8 A%xT4FJ|v2 U1j=ѣٴ2הU +.DdC +endstream +endobj +1334 0 obj << +/Type /Page +/Contents 1335 0 R +/Resources 1333 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1321 0 R +/Annots [ 1332 0 R ] +>> endobj +1332 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [138.847 123.498 167.41 134.402] +/Subtype/Link/A<> +>> endobj +1336 0 obj << +/D [1334 0 R /XYZ 90.925 770.89 null] +>> endobj +138 0 obj << +/D [1334 0 R /XYZ 91.925 661.805 null] +>> endobj +142 0 obj << +/D [1334 0 R /XYZ 91.925 436.375 null] +>> endobj +1333 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F50 1198 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1342 0 obj << +/Length 2027 +/Filter /FlateDecode +>> +stream +xɒί@UawJUGJ$=C0~dc0UInׯ߾Gf"2G2$R% AIɣ֛+*pr%$7X]~xYkA!HRTDHPDwpFLѣSq{%3"7 )yhj;C`XoY@nүnfEHxuXZꇢ~78^M1sC},U۪^nԢo~CeHG;iVo^?kٺΑ9 =7@K)J1Ct}8$"nۉ[eY%9GK?. P*8sHvY]7d`gfbGݴUVڼua/ջ{{Bc&!@]yRB"Aڊ_*bh +X<-VH$ +\)L(*g(L4]R5sH[8Qăn̹S +$0 #hbY_,Tc|=n!gYk2Ytb (9eݏ?uw|LkFÍ)=#=/>wz(hGMHG[GL" +M@IM;A\l8qy6|nF"r 4F4Q r)B3\mX1(LS̓o~g?] M/nŘ<1sWuWR)ySX&p`֋ɯ0\H@3!6KZݐH?Z&׃cf_B$h_ DS +=4dOJ ɞ2]4 jLxlIi ْƍ[,w +Wc6=Yf LMWH҃PlZ6M /$ Aj0i~ˢ*Ý~|  5NHjX~XqT̫5D zhz 8M㄃K&[3m +T/(iK PɗCW4; +endstream +endobj +1341 0 obj << +/Type /Page +/Contents 1342 0 R +/Resources 1340 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1321 0 R +/Annots [ 1337 0 R 1338 0 R 1339 0 R ] +>> endobj +1337 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [90.929 589.49 119.491 600.394] +/Subtype/Link/A<> +>> endobj +1338 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [251.201 561.395 265.647 572.299] +/A << /S /GoTo /D (table.3.5) >> +>> endobj +1339 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [423.535 368.617 437.981 379.521] +/A << /S /GoTo /D (table.3.6) >> +>> endobj +1343 0 obj << +/D [1341 0 R /XYZ 110.6 770.89 null] +>> endobj +1181 0 obj << +/D [1341 0 R /XYZ 260.952 545.319 null] +>> endobj +146 0 obj << +/D [1341 0 R /XYZ 91.925 418.993 null] +>> endobj +1182 0 obj << +/D [1341 0 R /XYZ 271.741 316.676 null] +>> endobj +150 0 obj << +/D [1341 0 R /XYZ 91.925 193.712 null] +>> endobj +1340 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F50 1198 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1347 0 obj << +/Length 3328 +/Filter /FlateDecode +>> +stream +xڭZY~_T1,K⊼J~ItO@ ̋8XÌ>|ww06gJP[1 ೻oo<_ڰ?o8d3>y =tFRVo6c,UL*/7a_Ǥ9 VHPx\ 0xk$Yr8*wTad" M7m=_pVNנ6`%6cŰrBeeʞ`P+ht 2PJ.|ŗJ}V9!#cu \"1W}T1Bq`un3 +1v u + ] i)X\P))AKw8cRNtb tK4H Y4t\PS[RHaз O{)+6OQH!|:ӷsY%9}QY8AnvzpX9@TNJ1u~H W5]䞭O>0mܫ-I-f zѺ\1+!ڬ*JՆF=۪iecC^pBfkt,(cKOHK䡣IK%Nl З@h;nPDkHZpf݋[ Gݺn݊h=^]s#=gHW i qFy]|΃~I4ͮzDv/="YQv--:?p`ZZS/ &tǒB6v4OԮp@ (&VU򴦭:8'O4 418˽\hhKqؓʯ͔D! iiemEb1%kЀx_ND ā #\ vZ%L'1AMI=Z<:/pޥ rM[Ӈۤn3'~)q6-Xѽȿܾ}_& o^g5]J4S6tMY3VHAl$+Wg>70`}uof-uP'EkxQS4{k|D;ݳ] 8wC߫lk/˽)?fFGTh ~sZJ(Ȥ(VkZTP/P7_I$Ȍ_:ݦeQ Oۑ1B;#%FbP1>7\+{9}m _>mSJEI=x u 7w2ki CN,mA' ],[!rl#Z;F)\1-Ɉ{BRC+Le;ᣗ8֝K5YhOQed߾}lBTTkt.x\aؐ1D{V;O'noyC2ObIT4]Bnx2~F4rlCy܆,mކt6c6d!BFz†p/CezÔ!nI14"P<`:V2NU]|hD2]%J,Z3{q"ṰGc<0\{:0C+ -$U8Wg!0L&9*xi0xIK(֠$+:~暶eXMϻ)}J[ w4v\5Ph_T='0sU.w}SP)țulV: dyVdp郱$^vxFJOxu`faN·$?\1 M\gi o}\m]vg^guMzSM2"D/sEw:xA@j^u^ܹM=@:6/蠿yr\V|0vC_ 3uH_287hƋ} ,eIYt=R Qдѽ-BûƁt=$NQXM_hzJ˴}L +Yϒ5o%#(zMaaTݖ]Ц$ -đslRtL%*N櫟Z% 5sؓ%GWl+-|k(iO:w3ыqYR?/ie8aj4Ͽ`w]F!:ަIOeE3.M.Ƣ-J.x7F!C޻?vԖ?-m}QNcb6 X y>MPj&3cGr6*+5nyh@}硵)J=k. +endstream +endobj +1346 0 obj << +/Type /Page +/Contents 1347 0 R +/Resources 1345 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1321 0 R +/Annots [ 1344 0 R ] +>> endobj +1344 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [156.911 481.133 242.19 492.037] +/Subtype/Link/A<> +>> endobj +1348 0 obj << +/D [1346 0 R /XYZ 90.925 770.89 null] +>> endobj +154 0 obj << +/D [1346 0 R /XYZ 91.925 546.224 null] +>> endobj +1349 0 obj << +/D [1346 0 R /XYZ 91.925 396.212 null] +>> endobj +1350 0 obj << +/D [1346 0 R /XYZ 91.925 381.456 null] +>> endobj +1351 0 obj << +/D [1346 0 R /XYZ 91.925 354.745 null] +>> endobj +1345 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F14 1207 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1354 0 obj << +/Length 2703 +/Filter /FlateDecode +>> +stream +xZKsWybr&]qyU%HB @`d盙"J.fz=d[2Y$ahqsPB: P .>+Y JG,O˯7_ [ED&4R/6_bo/X(xVQL*ŧ_1B jgQG؝}a84}o?!E'-.AaAVdl-R?\>XSM[6peMk;4ⴡ/R >]fR,YT hjM\6m웴cpYВʷkZٴU$x䱥EPnq t譄 +f\Y⑼Y-Il-vy =Gڴg rL}s*3 ,9'qo?(>P(ީ̻~KGИ[y{(7m^0M]9!5OH^_[g@\JቷOlv3JܱƩuauPմ֒Nf ^y7SZӑ&Tq$ |d,xȋ|/}XCO[;rdG:[OTb#i>IВ]AaʷMcʇ^m4[MZlE.;¤Dj?dpB =4%MX6a4P +}ȗ+aKf쓴CYT(hQL6ajE6/).Y*%K]]mslAAukPKk #sE=ɲh(%!\P!ڇ(3otoZ|պvr0AUC͢V [Pv   R%!s)) Ea$^,4bإ*P~lYD{Oql<GE, $'@@yCdo_3ShgP"8Hf%(QHP'> lx$ɳ0t% y @ i`l%QdDƤ_ϬK5p +>FH#xW#?&^fJiÒjD"fb0b">R9.ւxaP6q&А"Zb .FDϤ$ u29K&㍈8 @3;_fl}ca, 2~K"4-#|%*U}Y ⻺¡eF28xA\3D".d̈́ϥJΉ)K3+96՜c>]ȸ[B_,B# qR=7::w|{912ANI42 ܎evJ X1uW-|&S3,Wcq|Fun5B!^>i{8^ GTm]JuZQוߔ|E m)[_T'@f_en0Z0I!\w +n>ZM>n6k$<&=ؒuO!cANpCOR)R_{Fh'2ӖSZy(Wm#(Y]n߮Q]C֛lbV>cY*V+6T񄧻r>ݩnuO|yvTd'y]T ,-y87<(Տ,ζ8aaKyGY?Ɔ['tVy.aۣba8R4ڇ,F8"? <0ك[#[lѹhVEb\7 +cO,֯UӆJ^%ΦqdJ!ywP;޻u1Y>rL`_竉*smM;*2 +L{ Bs`\~:c?M l6m'bCu~"[BXx~s)/rD(fڄ6^rhY [ ;[0)2ݚ$Ep%{IOkn.vW4P΂<' ¾Iq΢ʺHi#9 +:d]Ig)_Nz=[mMk7pv&pvm{M##~2/CV a\}=\Ph+GEN ø +endstream +endobj +1353 0 obj << +/Type /Page +/Contents 1354 0 R +/Resources 1352 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1358 0 R +>> endobj +1355 0 obj << +/D [1353 0 R /XYZ 110.6 770.89 null] +>> endobj +158 0 obj << +/D [1353 0 R /XYZ 91.925 533.685 null] +>> endobj +162 0 obj << +/D [1353 0 R /XYZ 91.925 346.547 null] +>> endobj +1352 0 obj << +/Font << /F39 979 0 R /F14 1207 0 R /F29 898 0 R /F41 1063 0 R /F8 1356 0 R /F7 1357 0 R /F50 1198 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1361 0 obj << +/Length 1226 +/Filter /FlateDecode +>> +stream +xr6m厭%E=drpڤMt́hDm~}A-1B788_O[8D~k'.|'IsCztetFM|y>t˄@P'^N^B'+'OɁv% pFa8nBNOe Q6\V +JR6}5eu.`F@\׊!V[])YW-~J{Ե +!n1b=C=!~&E5"v6$jT;߱!n윂gH}4tfVAEǕ-]NWeGﶢ.Xdt4|?W@ji$_Y,TF;|ɂg[@E3 excX  +"Z5b-9t_uѫ YZI{pER5LumFd]7]<U-$}Ag{a/|{Г*~QbCkM^^|)?/Ww#d^ gN8 $xIpNEzs Ԩ{?{wŢ:[OoO"BHwd~,b$T J5ؾ6=۶cMpk{rݩ]gǗcYF}s)2xU#3Z+`X[+W4_-Yk0E GgHm@A3)pj=i_h; 91t^8q\ëR*Xu=\YI8L͢@q1kx+/wiIzӌguGv|7Y[$- LvAޗt8 pJDo!Y(Od8|L~Mw oDeygKgqbMFXWU#W + KjΛ;Ȥ}20Mc`yZ~`ԇMOfV->kc0Z[l2Q_Joyc-EYnԻ&l7APeTcέ;&L07z F- Hs*%76wx`5$~Դˤ_sY<~ B +endstream +endobj +1360 0 obj << +/Type /Page +/Contents 1361 0 R +/Resources 1359 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1358 0 R +>> endobj +1362 0 obj << +/D [1360 0 R /XYZ 90.925 770.89 null] +>> endobj +166 0 obj << +/D [1360 0 R /XYZ 91.925 248.639 null] +>> endobj +1359 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1365 0 obj << +/Length 1449 +/Filter /FlateDecode +>> +stream +xڭWKs6Wc1S<>ȩ餍DB| dWłn",Y[Y?LWJ$"kwس넞k2~ ;Y1{LJӇf5kAfV:ZpJ2YzҒv8eAn/֦: i-y-LКUs? +jly2ƀr/Q{p7rl9-)/ +TMFBa }g50dq6/̫LLD II,3߅x}Ɗ)(<?Bֳ5oDC\< "Dž~\+%w\!巎h޴bF`7BdD!JQF(zQQ=>Qr%2,EY#`BvN,Unx)`xnvFRDc,(:S\)&v6H2B<*ykf}$~B%zsۥ>/6)\$Ht 4 6,ouC#WdTFs5A.Sr6*Uy]9נ2s*8hj &_ٕNB c{ɍ;ځ/!oiV5ʐF*'<)J <fdPjm$ĩ{jFP#P u@ pBHI`+%4PQKZl{8imtᅁ5NPI}m.$c<ڛB-0<)ͶnLXִgu5{9{oL?|Nc{S x4b_ӭ]ϞGlgnˋ,b^вk~l_";랂C\޳ŕ_j90Zy[v3ވ_RgRxF@L?h> s!CgVw/R_w +Ⱥ< >ؠ7YyFj#xl%/O-!+Ğd$W,i p_nnkJ[|n/bN: +`^p{3EiMhꓧhSC0SZa> endobj +1366 0 obj << +/D [1364 0 R /XYZ 110.6 770.89 null] +>> endobj +1363 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1369 0 obj << +/Length 1202 +/Filter /FlateDecode +>> +stream +xn6mVHE":ö1PnDB-KzCeˎz83DG70 OX͗^ Θ&4楷?2U]Wf1AluvF䑐ӄ放{l(0kEvv:|]W b[Vxx62GPVW_Om](t3rL yix-vJ]iMAP(y! }-jR s|zXb<{@6ך2עZBLvN9%R+J:- `SvsfHc+"X) \xZe"8P[(&1<Lf]~^51Y#a/RVV56r=$h!8 ::E`j)-EwRvm08;QJ";sFQb9b7ՙf-j$bR٨;KFiP=u{w5U/׶a.iPħ4 8Y+s/OB g/=N$I:ɂͲ99~͐e@cX@mmwZڐU6f 7٨ZG܏qq@89$Dz:+mgal*Vr^!սaP"й{g st%Qr%4Jgq> endobj +1370 0 obj << +/D [1368 0 R /XYZ 90.925 770.89 null] +>> endobj +1367 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1373 0 obj << +/Length 3204 +/Filter /FlateDecode +>> +stream +xڵ[r}WTbuvZTJIPBR_ E44}9}z0惛T끖/ +f\_?᷋~?=;=7/OO^zN4gs N|1~u +~gťOO~7bC)!!,'IJ}׷yG* Kbp.3>}n3uf1i:N4_[·}h5OW.y|.>ds1Y5*=/Rԩ'iv($%ΥYM50`nr +V$-S޷fW|0|L4ëçtߦK3mj̯tT  (Mgͩ4v&MfPQXjXMf7ihBp^d6nN~KԚ)㺶T) 䵒Tܾ?,ViW ߤqsfcmX&^w\k6zʷPaFh0{liL +gIƹnJ$X>,`^ȲJ%( /3~&W0Y/ ]tsJ1H^kpUb8ӏiŪYӟ'7r[6M#)08c^mFqysՀЮ1U(-6,W9yfqNB +)`Viߢg2̲}:ۜNhZ^g1lҕӺQwv^NVϿQeFtdя4J#bM+]=#ZRGTR5/Z%uƓkruivLgߛg֭fWjr9mJs7m|q9ŝBHOV2!)%lDv[GF|q7[YmM~@\JrurEIvuf/(5T t-DO-6${;}eld!>[] owz q4- zaX]]eYHY~!a`3euyߗ>kt=oahDJycK Νc.7xȚ癶Mly~I77~.t8Oxh{HtIx9^-Jky-e,z9Zt6EN"ח7%mKmȟY̛E'77NіȪWiP( x*V&.ˇ"e[Dq47Fv`Ɉ +0ݸGWBcu,4iŧj-MOF7]㚚̸*SNM KcE7hvWRDHP:0źgeVEza:AH)Q,EdTbڨ(Y> 樠`;Gok RܣOpj{ I꨿!ʥ0T#럣(vgBs-3h؄dRˢ*3 D`F+-.Dƣ׵]I 0\Ὧ6Zhu.`P'{ ꋑ4]{$C1yN2ډ.HH.T<mDV +IB(%ԖƈpeL|uR$/6|H}wA($;Q_=~ۮ0#p +)u.d\t%R:-۫hITplENثY!J/(Ս5Q:`RDQjZ{F+5.Uo:NjfYt\m'Tu +U5Ug$هm8PupJYjajJYbwp(%w}F !"5"GRQ-Wjk30͐pP6"_I?bw6CUMds%pC Rp)!Co=,K5MTxEByUMV{Yksphƹ +_8D@IϜOԇhe2A+%en#F0CUgŸU.ؓ@U37xԀ` GШBEʻ’Qȸ$^ f@0 Xn$JG% Ue0n|yOw4(1'SQ!cQ2߮&O7}M!n͇: t"DЗLJXͮ($’׵LJWYW18z-VJm捨5gHn=rl6:y9 +`^46SU +o:SϚ0t00yXB'^վ;Aƈwm&8&Ry*/+F8˸Nj [Bҗ0Ԗ!yN$R@'fD-Bh4x8#\l,6x[X ]G:% 洨 UX)Y9)X +>0Eh7^<`Wtx1:5"$I (b(+[c6bQW'BCNP!%}eYeOSuΉJTx厞"8BV K%4MhWXX[m Ӌ^/rD.<_'3uAa堓RG4tt.,D> endobj +1374 0 obj << +/D [1372 0 R /XYZ 110.6 770.89 null] +>> endobj +170 0 obj << +/D [1372 0 R /XYZ 91.925 561.673 null] +>> endobj +174 0 obj << +/D [1372 0 R /XYZ 91.925 322.218 null] +>> endobj +1371 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F31 899 0 R /F50 1198 0 R /F2 1201 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1378 0 obj << +/Length 2215 +/Filter /FlateDecode +>> +stream +xYKsWHVy]⊬~@r$ ZQ~}A HSb9a8~N=cBno($#:?$ R͈,_'~t2)M'wLa~i’(CPr}4Y %"KgsXQ!a\&_n~A ;22FIdb"\/lAٱ@ w(z/71mHgǔI^OgLM|ӎH%8 4ڄT%Hҗ |Qz7πR&}1&=Ǒ&` B}geiQq& >sp&oGXrMZ.(k&\>ˮ;Y)!Z1M(%ʋh2$:\'o6(C"#蝀x7RrWG2 7SL\j p5fבА_$D +`ѫj"uHSD/5Wi"p:z=O^H FB8aTǘܖ+L:)f$3 +*Jo ƈWo6%P*H`S:omm}jg,ScَD̤4KC6hkh6y)6z:,@W[ Vv.֣dd|#hQ[QL&,/PA<?x-X> +E?(O]< M(#jz[Wu^JM:eϭ_\R5v'4]cEY8Q4%mkja.gi6G8,6#|;ې QDXupLv0"ρ}@A첽 :D]6m]vKXSO +Q"Jd`bMXxй绑 0zn灱U890ʚmD/O3Yh2ϳ/I? 18]c#z~ji~_XĬ+{&js޿`gy@$we'-AS'@w群kSuЀ^ ŵ C˗t8{'Rnar3GC/q1o~s@Pq[r?-r"u벍Kh `Q<>z\ɶ5~͓d$҇%98gCCKvߩ3SE  | I>A_&Oࡪév3"KȆlʨ +FAVp~Pc:cr -^GT=Aw{&G "_T Yz[wycI2h^{efp8h_@<WD(u]2vI'cR nr,,>џx) `:1s)xXrTF{NN3 ,-_ZMBzTܲ%?օ+lẕ #FtΜf/y o/2v/Ϛq +^#P.Pqg*\E&}#O\X^Tɮ^T~-7Kfw44Kxla#|Aߍ_\>_":lmv +_>gtnuPl᪺,/@4.CƱ{˛jqsS;tAumb:>uxDP z +D}H6>Qa5h*Vӏ?U;9rhς@PNcGd%"IY)F~r 5'2]N۰=u)D' %mlhd +endstream +endobj +1377 0 obj << +/Type /Page +/Contents 1378 0 R +/Resources 1376 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1358 0 R +/Annots [ 1375 0 R ] +>> endobj +1375 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [261.816 439.284 267.793 451.06] +/A << /S /GoTo /D (Hfootnote.1) >> +>> endobj +1379 0 obj << +/D [1377 0 R /XYZ 90.925 770.89 null] +>> endobj +1380 0 obj << +/D [1377 0 R /XYZ 106.271 105.425 null] +>> endobj +1376 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F58 1221 0 R /F14 1207 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1383 0 obj << +/Length 1078 +/Filter /FlateDecode +>> +stream +xڵWKs6W9!x L~d&Umt:I)!x܎{Xdڵcho?,(,2:~:D+" 2Aypz0Fc.i(H4?''gd::b,Ќh.D&$2G4ǀi](*b'I>tאP¹YDٶhPpiVYi-/fn8y*, +wؒ~Y/>Ӝ\~}:=9,+JwhvJD[VHpRu0׷0+(D`cH)Q]䬲A 5kBC|0JID,# 0lR]X>SNN6+ya*Qr0kirp̬Xz_f2piSFϊq۬wBAIwEVE, 6C1TlU(pKdOnYx \m-톰O:PWzVouVFYqY|fEebU=;Ma"'dͶ€IRೈUcЎGO [VٻMץ7molo)i׏PxGvnQ u̶.[O3Pb`}RFnu 3p ՕIoHkP3] +="k@nh` ̽j^7"{.PIg0聰cDR ++n# oZ޵+-MH E(5j{4{\E7K*U~k׽AyL'h$]:f]ѫvO[=?ߡ6jTN2o;\LpG}ͼs=X +->OϪ y$:I;OJT ' E3{8".P`X}WrwCZk^|KY}"tM{v>2& _GwLO0 +endstream +endobj +1382 0 obj << +/Type /Page +/Contents 1383 0 R +/Resources 1381 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1385 0 R +>> endobj +1384 0 obj << +/D [1382 0 R /XYZ 110.6 770.89 null] +>> endobj +1381 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1388 0 obj << +/Length 1155 +/Filter /FlateDecode +>> +stream +xڵXKo6W61|^IEnE69m*Jח/9MKn |ߌa2O`r<8!Ycg 0`%ir7(  /׷xi0AI@Y"a5T}J L^ʺjy~vPBe"\PC8膋_Mgn;"{T9u)E@RWnP`plfNuPQ}F7$TgjUJ>UcS;bQ2? 5/J~Z9C nT+gf(U-_4PkyYl;lj'_ny]`kq.t{^D>5"G/?DDN#rD;S#qDD;5"GdYLY]U~𥁳S=ǏOt'q8qNO͟/ Fw{Xs)h"rs\{yzQ<9Zϫ|^I=7fܺn5/8ծ[鳈-Hbx>Et22@mps*{޷n͘Qj5 _D۟d:0sA$S ?h7*UE3 lF)tT*bKQ +m$ gtv+1=/ynr]I`d\NuYox*a8(n_^QWoYp Kkb zE/ kr]!)颐Lp$רutZKRh8űkJhQbmll5=ԧZaG;E1_2ժJq_ ͻPE8k^t6tk~BSag L,Zf}tu >b@3f1󈐴`Fjmj,V۰W4\ K3_zu -o5d).r*PO +oUM]!K mIY]=΢ReYXKlXQCORB) ǃ8 +endstream +endobj +1387 0 obj << +/Type /Page +/Contents 1388 0 R +/Resources 1386 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1385 0 R +>> endobj +1389 0 obj << +/D [1387 0 R /XYZ 90.925 770.89 null] +>> endobj +1386 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F14 1207 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1394 0 obj << +/Length 2043 +/Filter /FlateDecode +>> +stream +xڭYmo6_2|>48EлC^ ٕ\I[wMo+vRXp.۳כ,OrK*u)C" JM|L7Vk*pj-$N7}ry3qBD p3N +.Yr8Nf}ry3cGDegJrfy/.xEb1_Hd,["ʳȷiVx0,-"yږXRݍ#$_xU_>Q*=/֏Au)~dS-z`sM+{/*e}u߅E\ǪX |#is/9KuAe $YpƯGX0lMzEEzWP|"geu"Y"@ >x)1Շ@"0^/00S_@38Q‎EI՞ [๧r8ʸ|ܑzkf0}L'ٗ~~d)Np~T:!t +L V,ʱ7@eZs1e l3XCH8Cqq0d1„C"Ds*GCT8xH?*7S 5FwqG_u蠿n]\jGZ9ʱ9qE7N!4}o7Q['ooy|wzŮmJ0G6rwc5' +Xj`ނhuvޯ \Gp@mfoa+*L0K`Iv4ۅ-v`}p5zOrq2{W21/ ՒzS%] /Dz ]F>:_*+=37fE&"Og0gn8j2hQg?aI 4 +l4Vִ vY&'NҋM^Cz[ݚ`WC1e}"=6W\8mjH h%L 8eⓊ:qF(RKr>*1CѰD]u :|=mB=Ⱦ\Nh7VycB^Mœ<-,V՗IhKX7V8]sS߷s9@b ԥ"u@Yx2(|p,qc\ޖmC9geB˧ZH0cVvcffH|̟_-֓fȭL*m5Lۮn\,}g ˸`w|oubaqa_vee*Q\!! #V;s|g2!\(z¶𷰚aSw6kg0+[sGwġh; OŘ2p[31<;?(҂]cX&Lצ1bWEYСˋ~tk`]L7e +F]SQoVl]g#.T!ޞ%Eh;'9YT]C3"z80C}8 +endstream +endobj +1393 0 obj << +/Type /Page +/Contents 1394 0 R +/Resources 1392 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1385 0 R +/Annots [ 1390 0 R 1391 0 R ] +>> endobj +1390 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [279.948 86.288 306.847 97.192] +/A << /S /GoTo /D (subsection.12.8.5) >> +>> endobj +1391 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [331.136 86.288 348.073 97.192] +/A << /S /GoTo /D (subsection.12.8.5) >> +>> endobj +1395 0 obj << +/D [1393 0 R /XYZ 110.6 770.89 null] +>> endobj +178 0 obj << +/D [1393 0 R /XYZ 91.925 428.146 null] +>> endobj +1392 0 obj << +/Font << /F39 979 0 R /F14 1207 0 R /F29 898 0 R /F41 1063 0 R /F50 1198 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1398 0 obj << +/Length 2441 +/Filter /FlateDecode +>> +stream +xڭ˒6>_#U5B HЮ=8v.;+U9P"b"ډӍ_5X{~{=wT,e@*P0-J޿yXy-:귇~{NB /,ڋt"?Og*6ޓݹ +`^x}LiUORL`s]^d]dwr|/-EĄr݁䱟'0nV.BaD@gu!j6ER'm^'$ ܱW;Ɖ+`q/T!N}A0 X`SJtà@d! ˹ GNDTT"f=ȕh>33YjG5`au ?7%`8T^ľ h`Wyq1h, ʑ@'Ϲt+ GD|n! 6`\!8}g^6뇲2) +[ɀ *!=U*8tk,Pqe} \[@ +|f +fd1v$b pXbl‚GDjI!aOܫ5`3x$ +}<6y1k3}T\+o9}#Ms0Gȼ9oٱjB:X +ޘO_g銀iQF/02f;2]-6%X'/ѐP#kn?@5Kr"{\`/Ps0^> ڹ:n{'Sx=DZnǪn}]MЬמ +0P9n%|s`ܗ]LylOCCNė​I%"e:@9#{ B,,+J`bţs9)$QاvΩ>(P%= +2u+lߧ^NCLu// MJq:B*Nϸm\G"mB:8lB` X r! +endstream +endobj +1397 0 obj << +/Type /Page +/Contents 1398 0 R +/Resources 1396 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1385 0 R +>> endobj +1399 0 obj << +/D [1397 0 R /XYZ 90.925 770.89 null] +>> endobj +182 0 obj << +/D [1397 0 R /XYZ 91.925 733.028 null] +>> endobj +186 0 obj << +/D [1397 0 R /XYZ 91.925 348.355 null] +>> endobj +1396 0 obj << +/Font << /F39 979 0 R /F50 1198 0 R /F29 898 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1402 0 obj << +/Length 1799 +/Filter /FlateDecode +>> +stream +xڝn6_=UbD]mX&mZcŐcӱPKr%;wCDoun꼚-&O/IHỶBp9sx|871N]Lg<|12 u<'H¸D>w:+ơObNcfo?&+TuO؉ԅLgZYH .2oקJ06@^+ [ޥ?q6y gعr%7`6Gx5c΋4zC %! e$Ah98,zVSl'xg0"S +hw=6(eňO= +ʏbăe<YjY6YQ!wOW#$0pz@0^oȠLGiQ"(wO0mF@H$̋'92)lUDͺZ)4=B4Zl$>̞BO\W>[:0 'Il§̺A'PAvQpmZRB| A`>|uCvZc|qo~P⌇{/|d7z$16^=3_1{6/!p0e\vXbmSJwc4uzs1bhwH8VGT5;Oг/J)UܹnQ-VARoW%/7+P%2CNe8 X/*$$,TjIWq'[P*,/s`ٽ&I7GZ!E7eƆbI&1EYdvZ|jJ~MNf[QnȢTd:+nɲr+39؊cՀܺn&A-#"^3_zSЧE~ LN9O/JUY4Ζ_R +MI&[ۨhhpTQr<WSux4,zqc +R[uQfڗR`ߛڰV +,-PMd,5rM%ؗ]yܥ 숙{ 7f5aWr8-a9Jh +)h]!8@ͼEC>nFWZlCѠRM$4QbS‰4S#G rf j'Av]ѱ^nGm?tőߕm)2ڷ[R):〭8 +jVGAõ{bpW<WHMr=P}f12Ͽv,o}(ZS'o͉!Uf5YGI+dIxI8Wݮ(8GN;!7ӥ9Wؙ̌vfZFH#3vc1}ǬW|W/u@]d0UNudlseT.+nj&K9@8Jp ,@%Õ+P/QqJIݻFēir}6CBoWzYKJXxSQHXsiLoOjY1' 7օsLQyshH kAC:_Lk +endstream +endobj +1401 0 obj << +/Type /Page +/Contents 1402 0 R +/Resources 1400 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1385 0 R +>> endobj +1403 0 obj << +/D [1401 0 R /XYZ 110.6 770.89 null] +>> endobj +1400 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F58 1221 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1406 0 obj << +/Length 1852 +/Filter /FlateDecode +>> +stream +xXm4_ov!Vq w]$R~=c8M $$>gg&ޓǽo_n,yB(^ ImrWoXo~Xd-WQ/m[m,22yI$aoa; K׉9'|0y*$dQ<ʏ$+{2#jOo50m2$3?_YX ,Øk-Vg?Rjtr6ƤqQZ]TffTLR =mۮQ6((d.[&N,SDzpzCFmdIn)ףx f-qԌ<'>P'&:9Rxk1waty,fs 䠫a"BIzrU>cܭocfPA!AhLR[WARuVp7ƏusV 3q\nrˆJu0ϑJNW855XrP+eQ_BAf splnR#NC:;hJ 昨I +Cy{%fnya8m[l L;Z:vei*R("mE1V=#ԖXWn~ǹU{خ,mm) ua2p +;X@erSnUZtjb½$ a> I'g$C$IQLNc[Rfw_| +!:W3˲wBU) 7&XnU}XVUFubI7%6O?l"zJ9Qrwwgo Y\u2Y?R`RuehpE + DD'mF|iMխŌK%l&MMk`T'r3z_OԮ)" $/#͓ǔ[0mIvj)9RGn83y}NNѥ-#^/e8gXyƣ)Sۍ/ zO !Yf9qgQ܉9 Gd vrQ]Ef +1Z2 =RbJ#Abf)bX- +3srKw+ݺ> E z27"9\Uv/3p } Mґ̚D$ɵ'nF>6Ep-J$ oaa .uGYok_"nqzP@i#Iouw> HX}b˘q[ W2Gck!t"RO۷$dYN8I~Bd\ +љoz +endstream +endobj +1405 0 obj << +/Type /Page +/Contents 1406 0 R +/Resources 1404 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1385 0 R +>> endobj +1407 0 obj << +/D [1405 0 R /XYZ 90.925 770.89 null] +>> endobj +190 0 obj << +/D [1405 0 R /XYZ 91.925 461.332 null] +>> endobj +1404 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F58 1221 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1412 0 obj << +/Length 2905 +/Filter /FlateDecode +>> +stream +xڵɒ۸_Te!O$I0xTOCUFUdp[l&}Y,weiÈ,^ƒ'j@`vy[&@e+|S"0Ru?)V`\[UUGs^2U0$_P>ҁɶ.7 g +da}$l2^z6kTG|W+UxKɛei"ËE<ƥ/mko }:dT?;O7pgx^5 mXZoP8۶|/TCarq cpAYV80q $4P< fhFA@:Gשuȱ^9SH1e4\:喂FRTj%HB$jbL&ԵRT`Ě$`ڥifcZ\Ri!aqR!R};'c[#˂Һ4[0|2b'^"76I#Pd!8J1AP&ӫĀ[wPTe?Cᴹ3( :S6 :a80!l03-1^ʼn:f}&:ݑ 6M:K`𞱤`9H1fR;f:O@4ӁhwrtvC1,1߯2ZO +ިD #'@hcj>ጾ +a@cDBG]RFn7iO#!J(8]]Rp'DnP*x 78'0J'R!Fzj|GAv87ojgx$(?i `˧BTTWSsra3[5Yw'\<x Cb$UXiUzvGP71 ҏ#oǰe +W@1AB;LS!SN'%5 )P '2vA]P@F^~+:5X5.MhD@1wIBS s@9{R@`}xtRSc![[‡ÁJ g4Kt@l}H *WI R{ӂ/, f3 ^!&ŲX`)@ΣH5 LaTEzcMυec =J1k@:A((X740Y{!T:I|%$j[v/Zz}_(o1n 1"TrMG$cI"C"1(G.^-]pM_\ !_a\H~ l-7SnI<[{SHScA)%g!OT X]jQYv*7x' ,$$!ܭEoL(^ x2yIi®:wP+qS6f*Nv2=zgB?,vєۮi7p:ƶy?G{#cn_pʐ <|4If +4X> endobj +1408 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [315.357 305.447 327.313 316.351] +/A << /S /GoTo /D (chapter.14) >> +>> endobj +1409 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [352.659 305.447 369.595 316.351] +/A << /S /GoTo /D (chapter.14) >> +>> endobj +1413 0 obj << +/D [1411 0 R /XYZ 110.6 770.89 null] +>> endobj +194 0 obj << +/D [1411 0 R /XYZ 91.925 625.118 null] +>> endobj +1414 0 obj << +/D [1411 0 R /XYZ 91.925 202.233 null] +>> endobj +1415 0 obj << +/D [1411 0 R /XYZ 91.925 182.308 null] +>> endobj +1416 0 obj << +/D [1411 0 R /XYZ 91.925 162.383 null] +>> endobj +1417 0 obj << +/D [1411 0 R /XYZ 91.925 130.502 null] +>> endobj +1410 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1421 0 obj << +/Length 1262 +/Filter /FlateDecode +>> +stream +xڽWY6~CJ@Đee Gw-fH@K\P]lCeY^b}1G:;:?^dA$ydWNČD9Ys_||Q7 ܜ_z׫lq u2I$Apڡ$H΍+0կ+j:M!; +r ƸQm.Svlr{߄8O%n!x )\SMi$_, Sm,r?EU$ +#J*vQ1ݫmmGp]zqWR(C2ݫ:J|ﱵke v }dQ +pvRUzd"pcC`ژ|mDd= +r@7ײ^5eKt75A~l4BbkRב6V5#1-V&]&QT Cj=6in#zYu.$I'Sf IHfzZP6THuhɆQeVPmi(ɿ7峘v[Y דxÐ!:t(Sʥq#oElQUvHy! +<6V*n@/j;(p W;gЇsK"t;>$Zjeye1l ލR b6mT f80,_(3-{jRc;N^{5iT&F¢04YW@0 "7rLfZdH4zd33hG,Rya =O} +s3ݫ|<ͼҞJzE +9_.C .凳y <j&1_G䃥L =XcSٌAԣpSF@Zq#QƆ5],4̜⼸OxʸcN]gsz3vf˶B|Ӯ[5c{"6t,!Nѻ9΄5hlM_4&QCr' Zә +61 +endstream +endobj +1420 0 obj << +/Type /Page +/Contents 1421 0 R +/Resources 1419 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1418 0 R +>> endobj +1422 0 obj << +/D [1420 0 R /XYZ 90.925 770.89 null] +>> endobj +1419 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1425 0 obj << +/Length 1095 +/Filter /FlateDecode +>> +stream +xڕWߓ6~_7"$mn:+Q\9$n+Υc;x]v$F͞])Jq| +GbFqS˛|G |1enn_7lmFA(J)NQ Bv+AAiVsk"AS!84X>-źjiP=ɹevSzFŔ-QVJB{jb_ mxsHUiۋֽ١K'\ug ]L䍝[s4R.F=y /=j2 .ۣ2}Ɓ1^L@pidO:GƲVc֪6P$)lb#}vŘ1%)h40\׊,f#Xl)nVU8r +K4o܏<^|)9KN<5дyoM L0BTe1m4";JB0Zs5Z#v"~v[U_E=";4S 4^{Sm|0R*J#syNZD +hCBeY8K&#VTcL:PTˆ}l{V${*ʝZT +)%ƁcK(k_;$M vzno(]~lz ٻJ\;ߌy<>n}{JcT"З~$'(Czrrbʴ120pOZi틉?V.狀&}4a5f!WumɮHyk3oe[z[SX$6eos:[RDaYwm{+j"@?$ ;C)e" t@VGqEݴ[q,Gt yht=_5"r}N90 YlZj ~qϨ NHҦh'3kg,q߹, : d GS/y> M@R}C,z!hfq Q-jFϠ?H +endstream +endobj +1424 0 obj << +/Type /Page +/Contents 1425 0 R +/Resources 1423 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1418 0 R +>> endobj +1426 0 obj << +/D [1424 0 R /XYZ 110.6 770.89 null] +>> endobj +1423 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1429 0 obj << +/Length 1450 +/Filter /FlateDecode +>> +stream +xڕWKo8W(1KzX) +$-$dnMZH+u;ál˥=87G{f6xs/2/cY&lE`8$`qxivy8 +c 6 g_o ,`Y{iTޢ|ƽ%>zl 2WqO~T(pc/IL:= G 5}frߢF(-12܎i[ozqv[KBbUM'p܇i!+e-se^H8f t!CPq$!IaNw+e0%%a:Ю(K2S~Kf1=c9> "',6ٺhJ.ֹ*ڊ+JGK1KFR溨KG2B@⃂"JBB> HLt X:y~Ҥo@G#)6].,A [*. `atb\C.7 ؗM #`=yKvԍ&nhc֊Z#?gQmD8%VF.ꪂ‚h]/-x뵴q$HY {p쪭! +2kCضSHZ9lEī2r\I(\L0~}aL$b<=inV:/TKc`C ̫Ba_3$K}du`EJ XQխ$-reLߖڡĭdC}"0BC[-+WZ,vڸ:gǦ /S/h qr_-P:=oo44WePrڒ+˭ŵF7Is?ce)0url +{($^ S@}Z!u6=Is)f۶x;Oı#IYխ&dڞmQmJiϓ`.ɴvDX{A`˅%Wm'={bUeZvj԰=X^YY:RgXG6aS>G%fjnD[/ysq" d,zyC|*)Ipw?dBٹe:Sӿܶ/R^xqON]dK /Sן_;)OX iCq;ҿ +endstream +endobj +1428 0 obj << +/Type /Page +/Contents 1429 0 R +/Resources 1427 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1418 0 R +>> endobj +1430 0 obj << +/D [1428 0 R /XYZ 90.925 770.89 null] +>> endobj +198 0 obj << +/D [1428 0 R /XYZ 91.925 608.503 null] +>> endobj +202 0 obj << +/D [1428 0 R /XYZ 91.925 574.697 null] +>> endobj +1427 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F50 1198 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1434 0 obj << +/Length 1656 +/Filter /FlateDecode +>> +stream +xڝXKs6W&rb>Ee|p3vI՝%B'ᒔb)ib.Y?N~XMijk~FsJbFV`3#\gŞGqv5g"@g +nGV%nD0yx~<7HֳF}L<GdM=jKFF-&#Z,EALĮI3 >9~dguU-6Ys{ʜHDfG,Y7eI;Y *XD$'k9>8p%v ۋ58-N3C(#!IL )@xj"Ƿ#$5iڬ8h^sqd_~9f%GА3X1뛻P#ZbT˦=5HuldC,'2jM@R@Ax|A=Iy;倳Z5qҵ^^5]7wZxW{W$S:j&X.H*:tPʬBU]ki agL6R2}/AQ r+kYm $&+„:LHz~S-\24I$nHniڡNKkhW7EV|M;5Ogui[NYpVFAX 0gYZKpHz3pWCDac$FWP b7 +}r)pwf"vb&s k4Ů⎮ :b%p@Ʊ/yL q +[#$Ձ:P_=[+TMayLjjMqx*,ҘFAΒ_O7QdZ|r*l< A NX@S~iH>\ni=<i+~*f q˘J۞}c |_L$YKJH]phΊ`rhvW% ցFB_xȀ",_}J=DIJ)2"s}08=a/ [U`gSeDbޮxaS˱TcgszaF!O/F3!5琲!!sBGk ftϺheY@33Z:Ѡ rD` ,o= W<+Ny 0v#d|=^NO~ih$vcCL6ܜ_vM@pҿhj䅡;?J~T#n ṩoߩvֵ\R#ȧDqkӎekF?x +8s7\~$sAH*Oԯ\_Agc6%~9 FHU`K{q]᫝b,z6^3v4<nɐq^v/G?=CیG)jImq0QfxC[06{u,sc&wRS1;%۽ ˀKm9L]i#&+7R?8 !%7&2a_K9MM_pl.׏;| 0{s6Ld6 +endstream +endobj +1433 0 obj << +/Type /Page +/Contents 1434 0 R +/Resources 1432 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1418 0 R +/Annots [ 1431 0 R ] +>> endobj +1431 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [285.269 505.855 347.844 516.759] +/Subtype/Link/A<> +>> endobj +1435 0 obj << +/D [1433 0 R /XYZ 110.6 770.89 null] +>> endobj +206 0 obj << +/D [1433 0 R /XYZ 91.925 460.346 null] +>> endobj +1432 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1438 0 obj << +/Length 2086 +/Filter /FlateDecode +>> +stream +xڥX[~_ʚ̅)?8]JNڭT17O 6kEouPޏ7Y|H 2^1"9օO~[+Qo?߼]}@ 2r2&^OGHpVT^ynwCJRN^I~`%Be / =x&}v%,wdځ`Қ:oҲDz||@-r+ɘ V=-j|XD׈$D(u X3VR1'-_meBҜ" +)EStD a2E Y д%ۦ>c۪zѦm>iy!~Rcފ/0'",D-uڏ +?ϴ$t3#>ZUXzH_38H+ˁ {Yu94gP]œ)Ͷm=:kKXX±S[֦m*KYf{hW-@OO'tp'4Se7uX )vDU@5<(+X*KXroNPSlg{nu!8d-f2j X?ʤPj@S# } P5~Dݱ*,cVvvkR7iP";b꩸t|US󦰰f2 7^1]9 ʟ:9eM&Т-;{uu).(,j?5G碙mm<Rcyuϝ9C3yH2MIr;onVnӍzqq7߷ +/WM[t.Ҩ1'^j-{UfwuC4di;>2~Z|1YIՒP +]i`.UYup(9bjڄ6̙iȏns@tM]Z6{B5axrvVA|CsYϳNruٌ]ټ_*$:QhN}3|)OR*@u}޶9Q &.p$]qd6 WYZٳHhZ pXw&:ODb̬l!-t ^p=.@t4tvF'l1Ʋr^+OtdJf1np)L'4Ӱ#V2OXMa1Oh^HDu*B g$0%4d |bȼ/Gz9$DIXǸ˿ Y|bx~ar#Qj#K.AM4UH̢.!܀F0 (J$&M%4 ss<{a|x/hD$$2NTwC^q@`8]FD[ɥdiB NaKu"8LUp8Q^O #R&WD2~+ِt|68d9Mtcl38g05A< \%0.YBb4bSYX것,2TY"^t.KEG)3ׅPrr6Ȳ:$#bme)' O(,UexI1Kf3΃s4i}[7m:>3PO7dKV-,??>sG7~t綡4hvR k5|E0¥å{Γf(S \wd#5-Z&\27Ic> endobj +1439 0 obj << +/D [1437 0 R /XYZ 90.925 770.89 null] +>> endobj +210 0 obj << +/D [1437 0 R /XYZ 91.925 689.9 null] +>> endobj +214 0 obj << +/D [1437 0 R /XYZ 91.925 342.851 null] +>> endobj +1436 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F50 1198 0 R /F35 934 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1442 0 obj << +/Length 1720 +/Filter /FlateDecode +>> +stream +xڭX[o6~[ef%Ɬ!]SXz+MDd%xޯM(%b|tevx^r8BI, QCo>?~}?_$#4_$i/|waefv} 0BQ/K2E>>} wҜ}UŰ.fUjJaOIw&F?Px!%_w=_A_鎊`{3sxr8Fuy,ȺnHY{2ǁ0J It>VT۱b6jkq⟆ĺ:YIs*WƞS#S!iG.4CigRBV%o*e{0Jki4W+C<{EQz[`|Clv*^Zd|g崺XZ=LeSɲs-0XIQQA?d7ڊj31 &2\l r8PaU{/7F[[]nd 7 58O&`vmM4CT 3;Smy@Dy6V6s_+Ym0Bu$_]{vWDQ;H)+{qYV: 8a*Zr_zU-"_U4K \1 + K7`-p'AZE:QZ8JP +FeMNSc|,q$@Y2t6(NwL>!7lIb:u"ZwQ,IWd@ +kB%u*H+UT%_J:9]'m< :\%jx1S]W[=wVמ:{3uvV2Kr'EYǾ۩v!,3aQXb'F+UܤiL77B. r{ej8C?Fy֦юg6<*Tdcx>/=Dhތ(ݔsWdIt!S[hnK Y<1I!56Vk*ƕ,nۡTULAO]; .^e&UmnZPRSO,[?`BU.Is9JUJRJ`%+1jB*Im Rٍ-xTR`dUR!O;mb^2M`avV4ۢ:@ӥ +Gmp;-*(QF(}U a4uwIC9F& 7kCNЦeJt=9D^\\ydQ=jXUJ5ε|EǸԂ ȁqA+#;n۵;UmЏ?z\*մQϑ^gTa%JIԭPCۆ$/:hPAF|DѾ(FH9eqʯ'=TWLb& c Kp +ţhb3a- 4q(IfFAx=֯ ű<qBIj CsYanwEʢT!P 6໛M}5Pqȵ7.s`M@VB[I4KFi>/:OܬjGkcꇵ]{/(h9dw]_bz&=9(mxt@. +endstream +endobj +1441 0 obj << +/Type /Page +/Contents 1442 0 R +/Resources 1440 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1445 0 R +>> endobj +1443 0 obj << +/D [1441 0 R /XYZ 110.6 770.89 null] +>> endobj +1444 0 obj << +/D [1441 0 R /XYZ 91.925 103.821 null] +>> endobj +1440 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1448 0 obj << +/Length 419 +/Filter /FlateDecode +>> +stream +xڵKO@|9(>5r1iwa6>bvo@Gљ x|.v9#D :a4s=#a@;pp>EW r^R` !Đa q@U0jY2l 8^95Lce62Y-U웪GZ*NCfqeʝytmbN|i`i9,8MV& 4v> endobj +1449 0 obj << +/D [1447 0 R /XYZ 90.925 770.89 null] +>> endobj +1450 0 obj << +/D [1447 0 R /XYZ 91.925 733.028 null] +>> endobj +1451 0 obj << +/D [1447 0 R /XYZ 91.925 657.148 null] +>> endobj +1446 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1456 0 obj << +/Length 1989 +/Filter /FlateDecode +>> +stream +xڥYI625'+SSSY:3;n,r>aHI7{ d=d4xCw8%Zsg #-%aeSæ],\ypK ol09 J1(}83(l]Y1uuXXTGI0CKsJ0mr("[p⑺Z!Vn}H$jz8W/ۍ2DQb԰a%kAo$K&X&$Ri~ZjA'ŅhRHKf}|;H݄ #>7BG¸ 'ǎUH#Ϥ質 $G|$Z rΈh˻m$v@ ,{cB鼵! h1 >RPS#ƩԈ @)v.jǵOeKEEji٠ّ3VeܥeB|xYp~4mׄ`.\ɸmvaD*-TAd;A;+CC +ԧ5̬C3;\ F+}]{7͡9CcPn 9ߞpݡCF^4X9 F'#kX aFsk&2O9 '=?>[8"phRpg< 3NuG4 !aO+7l@ʪ +CߛV>SECs5$@>fIm \daqS6@-d2n>O٪ڶ\njݾi'a4DxiEA Za>C JP!w.w:O=:NCW hƨ8 ӜҌe-T&m !''./ 9Њe>eK-eZZ&c7m"ۛ߰ȐP_Kd<[n>I5lDZ=;'4"fzBB (i xԚ,Ez)zc@Cq;+VFX{)Ela6%Ĥ\q[*N#e pЃ92,J. .-Qz6pT9hתHie4!µ@8t/9قsF4lDz]c0̿XzJݢ O{{ l|$!(D^!N85GBį"¤&H vA/K!03sbh"V^GB+u +x`]iJWHּa(- 4&`p!~`]+цcn!(-iO@0EY("8뀄ꢡ*C/N{s\WEa`< kxgkH +ڜt+ Xv 1R܎+_CB>9T-kH> endobj +1452 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.961 210.372 144.388 221.276] +/A << /S /GoTo /D (section.16.4) >> +>> endobj +1453 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [168.677 210.372 185.613 221.276] +/A << /S /GoTo /D (section.16.4) >> +>> endobj +1457 0 obj << +/D [1455 0 R /XYZ 110.6 770.89 null] +>> endobj +218 0 obj << +/D [1455 0 R /XYZ 91.925 733.028 null] +>> endobj +222 0 obj << +/D [1455 0 R /XYZ 91.925 550.016 null] +>> endobj +226 0 obj << +/D [1455 0 R /XYZ 91.925 271.892 null] +>> endobj +1454 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F14 1207 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1460 0 obj << +/Length 2683 +/Filter /FlateDecode +>> +stream +xڭZr6)xT!ؗt͡3ՙIj3+Nۜ$ϏILΉ ~NLJb&1H*DŽb Jmu~×_+*JH}IX|?o?~pddHPH1lvw_~%S00Γs#uݧ6%#-x@T@j)ʕ#x# ("K*i\EnM6cj7bE~c(skvb A1A #QN{!8˜}BK9(A8z3c;bC%#1AAJ ib!I{!4P![:Q7J{7ItC~*px4a1E ׌# +΀6Nez!%؊Rnݖ`-BPK^ +[a#T 9qc bVXl3K-A(@:DZ[0C:N,2vkU =T +v "oBpf d Ub|UC7JΊ\:̏8$x:qXἁbl +EŪ7rrD8\K {~5> +o/q(U ~3@Z$:GmT3 ->6;<H~gP'`DiUi_x+h%&b>BA".,ALbBM@g41:Sj()U#BVV'e=^b=f +G&|R "&6!4N$3 +Eg[Pi>&@XyPay@Uĵ+ϠdT|ZGCIU<(b:*3ƑpQHdZ 4eLuӝqr2!1WV*x2\W !x'tf 4dq: +Cphr};}S|7{A 5\*&`9al 5 mId Df%S5Hru) Ii.BC@M)H™u'PP2 +AKx^9zfT?s!-- `d@O1] +=BJC9tɹ?}VN2x \T81Eo @|y`+'L)[.u8w-P4~[fT\؀PCMH@PHKza7@)"B r#/ PAg]|ae IḧFNJ0'Go[Xa/=Yrw6aVȆ!.H[9ͳmul&Oʠ{OR(G${8Yauͱl#˕5aA[hm󚞿ٌ]m֛]e.t4" u]z_E5ƻγBn;;G A# + +5ᰩB٣G[&έmf /3uhInH4P^u%@! wUW.L\i84g.õƥ8)3.4pme0 ?)}:#nrۙa6ܥ)We9XX~h޶*mؑKjiJ:"JvQ0HJڑ$dG3oi^(<D) +Rq *b76BG,n]'"hS֖4+-jۮ 2ٿ@{'I1.jx+)w+bcG`#Jf1Sl0FC"s5[pJ4<:"l: +=D z(Oy,N^0WPŻ/̝#ߞ!9rz/}˿F3 >"FiK[1 .TUgoF|P訞뱳T7rrOV6YLWa@49L[m3u3Ldա:PXpR,YpMtU{i S|l&Zy% j sRϏ=N5tL<5TEY$ɫ F5iPƆBXN%2E3R\I &qja|ީ2uunC^saGCT'!0T[ضfh{[\RUg߼4TnԈ{Ѫ󸙁C~:)Ca>:"+ ~ڇl 3L?~gH F +˶6ʓ17ByC)dz-8FLIꅂFuGU`A +tuݨqSu{fNLs&\qݤW6lQ+ԙ :*SQΤh[yy>vN(|k5-(;䄶Iˬj$PT(ynmp~ʘ3Tg,MoGN/ƑⰋu٨MU3-;E4A، }PE_E +endstream +endobj +1459 0 obj << +/Type /Page +/Contents 1460 0 R +/Resources 1458 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1445 0 R +>> endobj +1461 0 obj << +/D [1459 0 R /XYZ 90.925 770.89 null] +>> endobj +1462 0 obj << +/D [1459 0 R /XYZ 91.925 345.88 null] +>> endobj +1463 0 obj << +/D [1459 0 R /XYZ 91.925 313.999 null] +>> endobj +1464 0 obj << +/D [1459 0 R /XYZ 91.925 280.061 null] +>> endobj +1465 0 obj << +/D [1459 0 R /XYZ 91.925 236.226 null] +>> endobj +1466 0 obj << +/D [1459 0 R /XYZ 91.925 192.39 null] +>> endobj +1467 0 obj << +/D [1459 0 R /XYZ 91.925 160.51 null] +>> endobj +1468 0 obj << +/D [1459 0 R /XYZ 91.925 129.003 null] +>> endobj +1458 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1471 0 obj << +/Length 1908 +/Filter /FlateDecode +>> +stream +xڭXK6WfR3E6&kA5Yrv;!iRbRCpߐf΃Ü7Wŋ[:F~lHS/G }l ᧛_[mڄs?ݛ޼znqnz 9Iɏ)`<&Σyt_xL0/ů fcc-S'F($-O+aMȘ=H[Cwn4 ^|t@rYro:8$ķ@'5~?'+ehk%m /WU;8!WHy^ȼ[hy- RTmٮFwOyJ3li{qugA8 +,`X[Z9mGĝ$J_=t#X햫0t[Wymv>&ksP'8tF)NnaSl6"$V $D BY5qrY# RWw|P/`wrɔQ>J6YIMO΀)[궨G2`]CB>-4SȞ2 F/'jl m!x3q<΄7e#K/aizrj&3vYӵޗ ې`&cr:eblV.܎b(kN#:L|CAOU Q׃IiJ]%Ԫq>NʩdOlšZCxΣNxC)hXuj Ɠ1hxڤ"RTo/Eq6y#Adnh゛t[ ;HypZqwҲS=BxW7-5SZά;ˠ}W:Ĩ˴p 8XA<@q{OLJe@} צ Ulgԉ +M۩&]%xJ7U8ׅ&i[„/Z:{cdWۇQx*7_u)D{y#Q}qR"_OrmAq`Rup|`P8?—0Àutoyy{wf}ZG(YgX/ͻVɲwqԥqϚQ'`GPؿQu YqÔ&>3fwgSY"p^$eL6.є +endstream +endobj +1470 0 obj << +/Type /Page +/Contents 1471 0 R +/Resources 1469 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1445 0 R +>> endobj +1472 0 obj << +/D [1470 0 R /XYZ 110.6 770.89 null] +>> endobj +1473 0 obj << +/D [1470 0 R /XYZ 91.925 733.028 null] +>> endobj +1474 0 obj << +/D [1470 0 R /XYZ 91.925 717.265 null] +>> endobj +1475 0 obj << +/D [1470 0 R /XYZ 91.925 698.022 null] +>> endobj +230 0 obj << +/D [1470 0 R /XYZ 91.925 622.441 null] +>> endobj +234 0 obj << +/D [1470 0 R /XYZ 91.925 467.789 null] +>> endobj +1469 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F14 1207 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1479 0 obj << +/Length 2686 +/Filter /FlateDecode +>> +stream +xڥYs6_J3B|L^s۹RO4Kl(%|b׉_p,G(ޞ}}̢eF6YT"p~~:^(\i/>,ԋ?>8QY&t%RGq,]dTЯ_s{['#ih΢4AoUSrexjZ[4Lz{I{Wnr/^mT#R/LښzET1,q&A ΢:ELںnmkzf\}o+ CqOt2cg"3Ó]l|G!Uίm^u -ڽۦ%t¤f: 6"r0k,S11 +1vWˆ#f"h4FHmzOe~ۋ:XGy~j >PGQ|MrגHeSTƨqChAIxʾ^7=G,}gAӸf wYTF-`2aBr^x iz.y}Xf[Na*0zQI)ɤA GmaO +a-' "sªrH+ϥdm/Ձϩл$'G"P-r!yg@"wӋkU![֒Z_ d%=5y r=IC-,kթR]s1 4Tab$$T(=D[>j®nYy2{[mr;^7PTa %ZI. +UV\'eucu LxO7Ak`u,a h$Lei1*>icÖ|ȍށhzQPҲ"SomЩ=:J:# tďu"%x5(9E +k<)Tpq%_y1tCR?MqHuTv뾺>l_#&xӆ<ָrMT,CH\[Ee@[8kJmp`<9Pi,〔s79::@,\yYl]Q=JJl4k^Cy47pw PN}ywk<1@FMp_PݙKueYЊwp@{qX7X02Ms +8[G_4Gw)=Vd]MsP'Fg8.'HZK+7 +w7њxσ9y@rgoyq0,O[mK6T%T,?\0ĉwNnkڗt1LuA4L0y*2z(* pK>йl<!m!a~ia0n*9O0TúA#҅4Zlmb+o`T1z[Oe%ē;Q}SU s_j&',N)߫})R_,'Y8H>pࡌaPZ +gcAiV҉?श\84˒\wV`~OB2q}?v0IzNT夗%&%q2NPZYl NqRix?/#Z<u.+_a x {)1Πg05SqIL誟ww> endobj +1476 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [159.551 327.697 244.83 338.601] +/Subtype/Link/A<> +>> endobj +1480 0 obj << +/D [1478 0 R /XYZ 90.925 770.89 null] +>> endobj +238 0 obj << +/D [1478 0 R /XYZ 91.925 560.404 null] +>> endobj +242 0 obj << +/D [1478 0 R /XYZ 91.925 313.559 null] +>> endobj +1477 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F58 1221 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1483 0 obj << +/Length 2662 +/Filter /FlateDecode +>> +stream +xڵ[r+zoؕ'eO~^g)a{g>9& +Om%N+bлD7*XA*%"g; +XR mtyLrAK 4dsЮb&9?jNhzg0q +KHY2Bq'!X%*N,RtB C`jB QBUWvNvg KC^ )ҫ[{qX|4=9SJ5 ˙d2UƠז@ 7e)# G^cU7f]Igun+ќjA"ם"_;8|sy'[_ +) @qolym6mrxꖴY["a;txύ3!0胝>A F/Dj jǒ沽]].2|!DoAujëZvz ]k+gD]"%ҤBUu)y'hPbĒ'5iބ¢ܓ LC8rU2,X?E;*џD|M<+Y]B 4(Ire>PSr+ɚe|N PJ&a9%s ]{w44S/`ixBBpPB4un8NVp=]T VU1U@`#_RIʦ +m0!6p8g&wd9|GI8GsX7B*8FTh`Th"UE-(ɦ JgJNSl DkEjƯĉf/ (tkU: 7M^cįP(o4Bqs\Ax r|{duڠEp9dTEE{*8 +K ٺ`nUWg1pV͚E{p榨;c6tKt:|.E +U  HfƚbƪԌQF,[cɣ [czdc4% v0+]D1:2 +O#Ə'#A|\TԒ'h&m҂qq@_]@ B9dMP֪HqHi`-3Vp}nӞSd 2yWY服5,):uR"kO;C|p&S<XEd8 Ϥ,nìS41-ͧ(' յNc߄@](!!a&Q("RRTQ%)[5v|жvC;IIŵ5RV['_ +8K.DpAӂs@rSxJQ Ez<'\C=|V[PUF'l@9`kLC41 <: Qr/óI@g^>97cƳt& K9H6l'!y,A5qi0iԤ9d7?< w<34u. LnL+mTZ@9Y330B 3*ŢVK5Z Ո4ۆBzWe`WV '- TjF7Z*d +ou}E| $,NM%k>MDofK{7uBpRBs4x*:l^ﯰ-^gh{_ooξ_-u_]-Ef:n_dOodsXA෿uBzZu/O\{&z Y͓2/Gx]zݏ_CC.]=G"[ȯ ާ]}>v_oI-[m|X]]/s|> endobj +1484 0 obj << +/D [1482 0 R /XYZ 110.6 770.89 null] +>> endobj +1481 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1488 0 obj << +/Length 957 +/Filter /FlateDecode +>> +stream +xVQo6~À([ qb:>m%ME<*TˊbCx#)J^M^'gK?"^H[G}2=F)yj5y:;:Ssru}׫zׄAfJyܝ$ɻ5-DH.3r3}BAǨ.d]oR=TY#u(R4<3^2adfFqKe3\}NDY"w_V"۪ٛ(1 s4<;YWױnq'uq=.γoNy}э81vwluO ҳc%k;WH{J=Q)򴱱!{pLEŕw8nhI8+4:eGШQbA7 +15JgmX;B[uhtp}΁&Љ,iHGE R؅y$Bٌ-*4ʪU_~֞=nARK=e9(*RIxȐ|<[>Be5qJ$)0mmӛ5UzؒTI/pmDVL=u#h3)aC,T9>x!#b4]_hlXYQ|B"PԹQVvqԠӾbU|ܖױn$G:*X^j'bMnI^(qw*iSY7v@(4jS3nз64I5ԨHՃ1|{5lulNZ dH<'A_;gAܖCE?z@Lohp7Vtۖ6p}q@ +Wc=HO&? $=9hOW{j=RTԿ8Y9ֳmcs`Qt:\!-׻ +endstream +endobj +1487 0 obj << +/Type /Page +/Contents 1488 0 R +/Resources 1486 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1485 0 R +>> endobj +1489 0 obj << +/D [1487 0 R /XYZ 90.925 770.89 null] +>> endobj +1486 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1494 0 obj << +/Length 299 +/Filter /FlateDecode +>> +stream +x}Qn0+Rq>Z% "G)Q8顷̚@ hŊ+PXI&!)+C )BC<=oI Ir&\D;wlQ/D2 +b"pQ'~Fd >p'ءwD|:swդSmSw']fȆm.6 3tK{bSym{=ūIlld> endobj +1490 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [327.49 659.937 334.464 670.841] +/A << /S /GoTo /D (chapter.6) >> +>> endobj +1491 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [358.752 659.937 370.708 670.841] +/A << /S /GoTo /D (chapter.6) >> +>> endobj +1495 0 obj << +/D [1493 0 R /XYZ 110.6 770.89 null] +>> endobj +1492 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1498 0 obj << +/Length 2869 +/Filter /FlateDecode +>> +stream +xڭ[ɖ۸+ypIav^nMMJsJTKE^"HϾox?*3Y+q Z3aa5iP5wif;A(KjyhO=fJ[{ZLa}i_z,n0 (m&-&K{`}'|.nܱ릮jZfYl6 7MO/h:>1f_0Ԫ_p2رi 1I$Yu0W a +9MB\jyۇjhvZX5"͊&OF@$'#6=lmvzlЗn}׫tJZX䎋_-+ݑj] ܉y|:8zvܳvC*FF7vtwU&o[vw5l޴iaon=Bm*Z9T@}5?ΜA:c~{/6?_"5lk$vc@oY3`V;I(^S4.'fv|I,L.ԊQcj ҷWEsHW^xq +=cu/4')u}ton6CZ +DB&<\2OypmSlIͳJVúݨ ]D?" 4 w! flA,ovH;hEH?^!NbfTT2`BG\÷Ԏ٭̙72E/ρ&F)4cOȣirl 2[$ͼr](%xz,AFHZ0UcȴׇL$LJ'j~.VsshiDǰ2 @{%=>[^>4q+``YQ܎*)zzze.Tx~a#<~ DخIe" I\|:I=䄲:M.wnx{="_o]oCq۱S0eMV!Muт'Ŷ,YwuZ4驊~w%|&fB8ƽB.7~Vxq~5vfګzwy WkB[ .D1E\`~]+vAH b6؄s*}iE~&` +3%1 fF2ˌ"25>3̺0%gj1bV'JHHFyfh;翦EYn89ks0"Yx{C~nD@h"+fmbX4JT}{I)$8L񁔂9_O( 2n Ղz!1_ JWRcL + |29N>OJB"6&\aH=W_vn@H_`򲰴9 i$ׯ]i]iw6=&|b#.^iG0)Ť?oipUu|9 -J-h=ɰxa10)ZڡAnDϫA2oG.thl.Gˆ@nX>C.B`JId 5zn\-P sb`Qlt&1DV"MSf% +dT"ݣ</ x*ȥA$2zyv7EKXTbU8[$_7F +X!1 2M`R2"M4UȠO +BIAI<EUP2QyS?Tjeޖy-u*Gt:qee ,B"'ؤ{6x9ƯC(Ʉm7"3D&O + +zcnyъDuy *"m"rB=r{sB{$^@tW!IcI~Zܕ#׎ȕtr?,5B9 -exZ +M4 H.5hf=h&C\G@QZ 9}"c17 ]wA8aT>>}5&JFy9}(e:^/hr=J|rݩk&ěPagoL5%! )Gp,UT'LO!BWK}Z[u^.0J +b_}+AVV먱 ]1mt$Ӆ (1{\#\yC,5&Jqy`P{!Ň"8.[Z8ń ea! E&a "g7ky>P})]'0my@!\,^8&x-d`J"zQ 5c ]BZ]@P&M>c_s'؞1cv>ei諚Q-P1* Y}3ֵYӁ+Vm/ ME +endstream +endobj +1497 0 obj << +/Type /Page +/Contents 1498 0 R +/Resources 1496 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1485 0 R +>> endobj +1499 0 obj << +/D [1497 0 R /XYZ 90.925 770.89 null] +>> endobj +246 0 obj << +/D [1497 0 R /XYZ 91.925 733.028 null] +>> endobj +250 0 obj << +/D [1497 0 R /XYZ 91.925 545.281 null] +>> endobj +1496 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F50 1198 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1502 0 obj << +/Length 1930 +/Filter /FlateDecode +>> +stream +xڵXKoFWD}уiqc!$(rm3HbE{gEzz"9;of8pzb9{~Β A2X^D AĨ.TPBH{rmF%H*HD(b"ֳqڛ#ٹ8e3ep9kZӧQhIFAD"Z.[8L;e 1'2Lj&(&Q"I$Y'Dž#AF("Xԁ;}#ALȓ e0-HG`0DQj {bjNpX/U?biHG?v Gq O$p$:$JM1A:SRka;aKJD8ଵZVeUzf_Sg {ﴫ;P= 5 +P_c= + +#&ξc}+r~rirY *@g.o櫺,9mQ][R z5-縪ɭ '&3!8XP +%96Ƶlv|!!7pmu}>JXL7V}>.oꦻpés3?jfuucӑnoj1+u귥TmSSu#?a>V1"J?V=#{ԓQh07fuեES,b&,|1zm͜P#6J ]-k儹 ߍNe\ñ0<+c]%̭Ӏ94)2Z/(%Y^1A?{|`Z0hE7@1,Smz۵E&̶UϡpX)zV=JްQ ơZj6_O|eHܳCm]bmja,u+ 3>؄ P5V!_ LKկu[ڨMfQWwO 78m})4S 0@XV7iw͆ۢI=30ҾkFE~N`(U,Y4ɤ_ (',mҪDŽܧ~_9N[}=KGܛ\# σKiAIP(| fglƄ &MLG\ujR3~ٶ]&dX;w2H^,s"ڦc4p*>.c oVAM-et-y2DS' ovp'U&|HA3/]ژAfK>"*$Xr{obZz%.NC j.`|hk\hܷ,iŌ;ۢpcP0 U#{IJpM+=d<d6cdgBd[vP+n[9;:N?llږnm|i9S`cPpm Hq'`_!^ĵ`s)OFIYn6CF g]]ɓ+[3GOֱ'S./$hT^,a*NA]2z.&tvbI`aT cGMёWOA +endstream +endobj +1501 0 obj << +/Type /Page +/Contents 1502 0 R +/Resources 1500 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1485 0 R +>> endobj +1503 0 obj << +/D [1501 0 R /XYZ 110.6 770.89 null] +>> endobj +254 0 obj << +/D [1501 0 R /XYZ 91.925 264.127 null] +>> endobj +1500 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1508 0 obj << +/Length 1447 +/Filter /FlateDecode +>> +stream +xڥWKo8W@͒G"&@7@mDjiѥ}/E^Laoa|:̼ eq{2{IL 7/˿.̯Ng>E~q~;OL2P/ JB+(Ro)7^w?gj}O FJfڰv-16%΋5 +Ϳ]S+mזY ٚ-JsgX[_G*fAH-HQr's?XѢZsS=׏lUBR{k G  +6b.̊(wV"J ՝Fط5;pa.>JR@80(0ԇ, s?MQV]%6Zq!NJx`snڼ.X +J0k9D#Uw)DӹD*wjњ= tJ|3k׹#mfjP[_HCiqJԖbTb:sbcv-=@b¬N1)͟@%L]P`gܷJ)žYPeA/BR?TC0J@QͶ:QlX]cڪp8g]HdkCIhj?OB]? \â~ct"O^sW +!˟o(Ɇ}9* 9ؚ8 G12I0 +PWF{1tI#C:7Fog#l4sA,$AYjV]inj9"%"(:)]EQidZ[ɶ4" SJ,9Fz$Ha@sˆ=4I:fHE(cQ'll}-lv,l1`Qà\٩^(FbO<÷&K8Ў 6< +HQllT8ޭP; [4ϒAI?wDg{QVRt/3´bimSn׮nM?,Tk48H<i௸Xuum/;V׍4Yrwɫ +@#> endobj +1504 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [304.108 379.664 331.007 390.568] +/A << /S /GoTo /D (subsection.13.2.8) >> +>> endobj +1505 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [355.296 379.664 372.232 390.568] +/A << /S /GoTo /D (subsection.13.2.8) >> +>> endobj +1509 0 obj << +/D [1507 0 R /XYZ 90.925 770.89 null] +>> endobj +258 0 obj << +/D [1507 0 R /XYZ 91.925 365.413 null] +>> endobj +1506 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1513 0 obj << +/Length 2625 +/Filter /FlateDecode +>> +stream +xڵZ[۶~_J3ŝ>$3iD>$ WLLJÅ)S^Jrw f\wiDSw:OW|[&!E:oR׺ܤjjYıXuYMKz[hi~ܦrU*1&>i +"|M7iMˁˈCÌe}A+` @9U=@Qbܑ +b'xegA$Bj'Rl& q"r:cɫ +B]U7QXǑaD&Q|?f6j9:VF|.3v.}?Ɓ-oY,yj7XɛHM"_v[ջ[@9d&>yd[Wc:6)_u"yG%NR?Nq]r8dOAغ}D3ʮ!4a"uAVI׏ק:VSּtm=g̠Vˎ7$Ҋ$&B%;# 5\ "'IXX0flo ޡ>S 34D٧q! j3i\XAbW$FuI&2tXB\%l >3b "_hD@8סQF0G}4XRc/jO9>9œ\vhy0ǐP,q"H?԰%SA3C)mA- /a[ҳ: +D1P)&n3-F:kX aXN !!bĽ{9LWخ(Ӌ%`z'y3ªk*5 ^8Bh4gh0Gh`^x@>]0"E\[_QAar%$M$,}Pp +4SHj )<{+H }9#[O\] |*0&z!!Env&73ݤ !-[ɭ ?uetJg6ƒZi}^]-aOB+3yb/3<K3tz>|~/8tŶ1$[3DBS$S:&p1̌|=_Oß 6zп"Eu솲>W8cJ9 Z)7$0Rp>FD3%Dliȕ9tGy#)ӐD ;\h6N\崸FQ4<P0>֠_X@B +5IgO\@Տg_V^ETA# gn"X6ܺA!ߤ my2qM OD]iJm^ƞ:s%֟g܎N4%ADcI}LChVLcecd46hi e +lh.nWx +Vʵ4~vPU}0 +P*u d[L26E 3fzPgFe5Kt~B"oBK] 'Z| WfV#ClWKZ=(٤ +ڴ*[[QlcEv5e)^"ֲ9غ,.wUO÷QE/X5o%f;IXA[I3{][!v'eItdwq/\R$.B=M](G!2,43쓺WvMXAỹr^T)+'[ EW\5e+MEW>bb2 ʎ/$ p^_*}I̯';έqڃ*_7[EM"cеHR7 !xsyB?ob+Xh$]gmm;}: 4Dxx"ˆqk$©,&^6۪)hw(բX{Ge;v7< GQ+툏r]|uNj myTZ(ZɡuzZ仠~CX_4;YЮRjLih-M+SAp:Ĝj(N?8v8oG}yvXoY\<āM +ybݨ]vCq#9!yEObCl &g xK ܫVtwf)7Mf !d. N PWǗ')O0޽ϗJ ߜIC`:'6MxÏk3E{|:abd:"vX^ uyl$йc%='k6֧BƂ +endstream +endobj +1512 0 obj << +/Type /Page +/Contents 1513 0 R +/Resources 1511 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1516 0 R +/Annots [ 1510 0 R ] +>> endobj +1510 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [150.415 293.547 156.393 303.983] +/A << /S /GoTo /D (Hfootnote.2) >> +>> endobj +1514 0 obj << +/D [1512 0 R /XYZ 110.6 770.89 null] +>> endobj +262 0 obj << +/D [1512 0 R /XYZ 91.925 621.595 null] +>> endobj +1515 0 obj << +/D [1512 0 R /XYZ 106.271 98.906 null] +>> endobj +1511 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1519 0 obj << +/Length 2756 +/Filter /FlateDecode +>> +stream +xڭZ[F~_ۢ*pj6UxSIl2 OFB>̨nN>,xXϛno~x/ R#Lp{(ΣT 6<҂ͿfsY\Ӈwon?p H XQ,uX XHIdw%dĤ¸ > CzǼr(ueYτMIʲuì󯛂6YWkKMF{(`.TYPYgsXʟw󫟫N8 n>9UsP{oh:t~U:rfO8T(_LϱEy?CԒk'jY۹"kWJ[]ԫuQ{z*ҍ-_qR*;!ggW|fUa5'dorLy1P{E|i=66%>%hC^Mn.yAݔUsϝ[,fw?ćn~$< gnmg]u5CVN|&DI͂j7p2ʁLE[xBi n9ct~*VE5!ї{|yNzE݋|!J%laU#,s?Ka4EW7gIJ.ukmSވ0]N$/_9$o#GbjboC˛zugh&j|η"ΟZiֱ;@e5_^j{=m!y]f-"G{pۼ\?n2[CZѭt;uSH>Tn-d]4-n`EE]2ow3Ϛ4Yd,1{"\ERZQٜ3◼{za"A2;o|Feu,f~SKeW]JI3rJf68*[e(<ޛ4?6{# +_E4L6XԐQ 0\e, t2OE薟ţwZe0j#`K8.=MX?`$">MNƟ QoJ_7YYΘ! Pp3ӑ*Z嶸30ы=pRO ȜB[c;0Ϯ{z/H6hԲDpKXmi߲6k.jZzc ~qmz_zQsZ=O] hSYAɊSz XQF^9Qe`{{BOXgMFBΎRcKx UO|XIA%D:jHe)Rŷ2&[ W\zD8AՑ칁g 1V'őȊ`p~\rI3``Hũ24 fKCYeі*API$kH5N URo8H"zrXsHPbVDL *JS'@0&NGAh2&ң(fRrB*b`9iA>04+/TRN $@=B1ХUd/eRSrs}_ќ=/R|3u?urG sm'\TC΢Tx: @0uN ,t +-"QIPt +L D* &J$tDœky""8n#czE#k5b#]d9"!9,{D NM4UԐj\.!PQ(AUAD: $'Rɑ2ͧk׃zܜԮf8;t7Mk}M +}ƺ@8u7VM3R;BoۆZ\Ц~7u\E6L8}GdyuZS.[.?Ŷ,{m# ۞M&lpW֋/"ʣVS-SvZӷMSfmkpldk3MsWǏԺpͯ|gö϶Ct0|u1{`2 +endstream +endobj +1518 0 obj << +/Type /Page +/Contents 1519 0 R +/Resources 1517 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1516 0 R +>> endobj +1520 0 obj << +/D [1518 0 R /XYZ 90.925 770.89 null] +>> endobj +266 0 obj << +/D [1518 0 R /XYZ 91.925 460.734 null] +>> endobj +270 0 obj << +/D [1518 0 R /XYZ 91.925 357.247 null] +>> endobj +1517 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F50 1198 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1525 0 obj << +/Length 1632 +/Filter /FlateDecode +>> +stream +xWK8WpUcE #=$3٤lƵ9QA3&VK&Ӟ$V;w/.E$, Y8DNzLΝOo+_rWJ}zqrq^@%w<' t"HH'-N{/D;G-s_0.7x r}W&HgeFrrF|;:SQ${]tO0]I1 궨jNrRrGJD$+drqZu~G[Tˀ_uvE]FUM4? ,-KCjjĪ٥%̫8ÏЭ򎖻Zzҽ#m1ciE;5=^+KLN+>pfm"|͸U;}JGZF ۦT.ͭ 'O}zs4g]/cx5B++*--Mwq^ +tjcW*Sm6wx58~/ݣY*3AѳfE83Jp^ܠÝT4-*[{.K2"0g Ȧ a}C CCjlLXFrp>c +XJFʗ\4 )ݴ]R͌.xdx}+h8}MAȷr_>u3PB},رmQn#W|_%La7w4]SCeDV 8UVh\t/'K3dhmSq>H??W)9ʏ'&|$N +yܦu5>¦őYsP?!OfܫO~i))4㨿CҶh0q7u}m ).iөqh&XK(x1 ϿW L;mt5"3JoPْb(~"ň7 + +@D17 OuD0@^TYDc & +4oN؃%7' ﹖kz(3Ű-m@I> endobj +1521 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [244.999 605.87 256.955 616.774] +/A << /S /GoTo /D (chapter.13) >> +>> endobj +1522 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [284.449 605.87 301.385 616.774] +/A << /S /GoTo /D (chapter.13) >> +>> endobj +1526 0 obj << +/D [1524 0 R /XYZ 110.6 770.89 null] +>> endobj +274 0 obj << +/D [1524 0 R /XYZ 91.925 655.151 null] +>> endobj +278 0 obj << +/D [1524 0 R /XYZ 91.925 559.57 null] +>> endobj +1523 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F50 1198 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1529 0 obj << +/Length 1834 +/Filter /FlateDecode +>> +stream +xڥXKs6WVjBxzH\'Mhrc"aD$7 , yB.]@׋ųWQd$\ fdBdDpSx4d_ZX~Y]\/lIdA"D"(O_hP·%Qr<"4a >,X,1 R ( wlmSvѳW|* VTȹ^4l)NVUC*\*صU}Ъ%,*4 ӌsw 18&sdN{*DP*U & ۪M) {$HLy2Ƶh4 AeUeLS KUi~;{dN,*L)WR9!T=Λ_ty=МL̅n ̦mRL3+3̰hEjch=ԽS +·VPaS|C$]r`mh\]C׿, "$crF@Jǃ6-. %a6^7M^|hk^J=bmv`8(߁zj?LzlQw^",!dC;"xSW&J"m`=?qm%&}j(&U3;lRD1eaY[e'70pG1"jM/`M yUv^'wdŷe6J!ZdW:>~}RFxJu`]E0)y}:gPՅ8f 0Hbه.澺Kf$MZV{>Ct]reCA&DOi:Gk9qD$k5up(տ,Y6= +KCwKȧ^פNmӐ,g d P^RO蠘Lg%ia "vYXj~eL'J2ogQm']4,v=0x'sJ$Ny1AI2hi~Xf^K3JI,ϴܬ➧7g `8YҍmZKsN~ +5\l?)#Q'Kbo:@u \X*mDz? BŠؖ9TpVi +]ʼnk_N8;rJab8-=r#~X`$M!zamD'}!&2} !൫nBuZ[,8|-ҎyPJ1^ O \c դQ˴sfM\IPWMC>ݸhj˼ZZ@>c^s$$J٪ck,~UZea316 O4:.!N Q.>9a$D +uқ: MgA +΋BY@hf~d 5i=MHq`:/,#SKGXmU[P1> endobj +1530 0 obj << +/D [1528 0 R /XYZ 90.925 770.89 null] +>> endobj +282 0 obj << +/D [1528 0 R /XYZ 91.925 716.221 null] +>> endobj +1527 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1534 0 obj << +/Length 1877 +/Filter /FlateDecode +>> +stream +xڭXKF ϯpNTƯ- 0EueOm';]]]W]o/Nr?a&}5HQue9]Q(%s@͝y>^5I>cKgqBLgvD2;`}e%Ŧwjθ5ԗUE¨}D1K30b)j[I"H!Kxuթ1HUOv_kq%ΰ`魯7b\c|5%\T\_׎]_ UJ>TņL@VHNłԟ\<'a(>1n2XDhRw*i5.U;zv{;A$Fv|06O!C z{Wp>C C5ӄFne120([>OUIg@ +vOyy8׵|>N?AGO/0pc!)dאVB pn'סw+HZݖ9t;-_{W \U5(K2RCF3! +? w0ƸB=;bXWӆ$T(ٍM 1tAp3ǘ-DFݤ,N +C/KScde/RH}*䠥=B'mvtz5PQsՁ%*Pˆ~*l E{"3ЄAM}262'mpV1РIy^vtlCq5<侊ʚ3#gYKIfTOm 0a:"k,ֲH>o&15mEHf +Tyָtjob+F.tK-qF/U0%k瓪 +26 1a ~F4.84N  KNCB,ek&8gZ5I>7H֨)SUڧo^0B̯Ӿ$Ñ.c|⾧Ħ)/{xBOHprC!pC*bHKj 8 {M=8R/Ys;Z @z{""AՉP鉛s5H7J3Eatуa{ao;%̮N?xrK Erc"yRP '9cйM󥏙; KgKF\߳K*}7CD<5=9tPyVt 3z{X@VoME |"f8ŀ7vǽz*7;b> Q-a{"aq?*˃?*, *A,燞'vVh:~^ڣG#z\}'mbهFD}8AQh2aC]dSf +iw<1i67w8}\3:$,^bɘ'͗ +endstream +endobj +1533 0 obj << +/Type /Page +/Contents 1534 0 R +/Resources 1532 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1516 0 R +/Annots [ 1531 0 R ] +>> endobj +1531 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [90.929 632.042 176.208 642.946] +/Subtype/Link/A<> +>> endobj +1535 0 obj << +/D [1533 0 R /XYZ 110.6 770.89 null] +>> endobj +286 0 obj << +/D [1533 0 R /XYZ 91.925 569.546 null] +>> endobj +1532 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1538 0 obj << +/Length 1698 +/Filter /FlateDecode +>> +stream +xڝWrF+p3P%glؕ(6+caP> ە 1{zy{w~ݼm^_Xz,b/vۛ`+#G,F1xSuas {@$JX"7rg*K{BW!+ %j2qDZ]@'-~c? InM{LUnt>Jw킐VZC>6C>^8!E4&4ߦRv.oӝYf8[C?Cj=ڲ HAYq]̪ w̫RJ47nÐ[ u6%hp0^pmБ--?ۋ8#{lJp][נ6+ +/}8՞6,)9 b6`kFloC8]c&BR嚫K35=ܣs\@J&Ҏ"@hR7AJRO)Jv<0{M7-@Q2jl "mMpqzMAUda*Q;dM,9ưL9 #C_7Un\}{rp1"BFehN4~x ULeq%/|E9B.if:\"ʭchbt`g Hti~(KCޘNZL Q0`-h;5 +0ʣ8:7"ݰA\ὶ(N]EKytY qpXO k1ETK5ti`+8x@%`ٛ /;Lq(99"KIxf4¹>U \d9K);ڲ;:sQ*> j]XIs9>]9hvWX"ӥj"ڛVu+%RȇT-QR=y\sBHX,('yߟjmK봜h|pgC@v(&~ KyUxpjo~@/q)cQ[Z@zL& 3q9Br;gv^X=Pꗯ 5Yil J)tx<1YrǪfpFO._,\ QSzB6ݙD:dLIbWQo;Nc*7'7t[3t3"o]kOY4kz^*ӀDd @r2Q~Ƈ/ab@viqY Z!]:% 6CY0D,N]6A. +endstream +endobj +1537 0 obj << +/Type /Page +/Contents 1538 0 R +/Resources 1536 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1516 0 R +>> endobj +1539 0 obj << +/D [1537 0 R /XYZ 90.925 770.89 null] +>> endobj +290 0 obj << +/D [1537 0 R /XYZ 91.925 593.038 null] +>> endobj +1536 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1542 0 obj << +/Length 1999 +/Filter /FlateDecode +>> +stream +xڥXKܶ!UBx$D)e' DI pJv4F?nO톇*M$g4%`̌Lo7m7N|cn;,3xr*VYPapERHp0pSt;ݾ>iq~uH5Ǿ}P5w+ofqtoښfPe۔QT@ҔhwpD7Ao]*-KTmJ88(v# ][5ܸj^8zQ? ً4lmw=nܷaM5-+͋K8F6]0L.{{ef[о;;0x"aAJ 0)CEƃǽ9 [mIb#M$F[~Ch!sMZR0ruY_"O RZ=MlCTfeFf"rᔀx + Wa:a hvD 3Kmw1QsQ՟bODR*pM҂isG%H^`i2BYZS$xdPiM(MalBMK뺅PE <綐h +.J >o5yF(йtv& %иn 0+g^ Dk:ӡ:Zopk~l⼅.#CWC5Dgj-Ϩo&TC#>2>9xȵXaBװ8Li#=2 B jÌP` +O1ya`ĐZ7a:>58XrByq4J4k"7AD@dCK +ߕL<)7?“-lB1]=\:,V,N{\0WKSaV2g~! 1&H49/ 4"96gyQ\fCodd_U*AP ?DgFY`\`>"p%*H@/cդH2bbazVQ 'UɷOCĝ%dxd4W/1,G^`a"ۙ~?{_+*@E,yXr@ +&yW3 Q" Iկc@ҩ2DvI,"拀IKKe=45u*Y!E`G܇WjQ8~ixB-+B3r +endstream +endobj +1541 0 obj << +/Type /Page +/Contents 1542 0 R +/Resources 1540 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1544 0 R +>> endobj +1543 0 obj << +/D [1541 0 R /XYZ 110.6 770.89 null] +>> endobj +294 0 obj << +/D [1541 0 R /XYZ 91.925 733.028 null] +>> endobj +298 0 obj << +/D [1541 0 R /XYZ 91.925 207.773 null] +>> endobj +1540 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F58 1221 0 R /F31 899 0 R /F2 1201 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1547 0 obj << +/Length 5507 +/Filter /FlateDecode +>> +stream +xڵ]KsɑW6d[}:b$xZB~j؍\D~]RO Er0aӺ9-bН7zn?ǿ_Bw}ヺ~Ǐ&HЋl"EZgY(|X8c;e~~P0(V]ne7ׁwv@^cU:|ˆ"SȣS/!<先/V]=m]kޕw럕2IrGTH%{::FgNg6G>l|yBpqUH$'Bgi yCB+u)p.\ +.n⿮&:kûH2v4] Rj"RMO b2%!'Z!Ԃ5|F:A2h"&v6hD&%`eqK9gt^8%ƀZSPS;zdn@zcM+y?Clh!AD4b >(͙`]hT]VEVd lԡ3dê+--I9-ZDHO,,i_\=Kԉ7t呆^ߐ-?߮ sDüұ`w_ 0YeR2G 9^"u]΁a9+#a2bHe-#BKx::'4R^d24 "h#B,1:Qn*i827⇙&?iҬJ=u^F͞E /BvjcT#DՑC.+K J˧KuMΐ1T׏s3n ,#gX&ڬ ]\G3 UUtCRiifڇfzO >1`EPyO#v -{xWot5}ɫ1-Nz}^6wdU6{IƔ!v8fh8  01"i]!8=<;$'a-E`JKLGKP2Q Ȝ mHXAiQI5PH6Z~7aCnyaZ]&xpOecKbxNY@$Xw^oud}m2fzXd`XX3g7mV LJ;ڝ@(.fxрrlC*Wi@ fy> +]&G#L(BDɤ,}iv)/7I;:HC&2Ա Kwbi h*&$cOElB. OAȗhz0wO25@qAdݽh& +D2"YX1*Nw1VrM:GTa_z S]j?|6`Ii +P37 t+V5}vAYxs!n-+k(Hh=4ĹΒs) }`l&2A<\2)bSs:n^6{Y%/xa1\ۮ1Eϟ_ډJ #㕣lCd+%k2YZAT$F"H*[R#"b`1i+^6)$hIy"Xgds5S[k6Z[;|-A8@եUK֌Uţ6N,m 㣄6d+"D aK`tACLcLj D!$39𤝠Anyl A5)IS"|8⭪({}Daqc'CtDj0ڣBIЊ\=&+ $kbʬ&7 ܔ(b 2>]glÄ́M'oEXi B;Y-=fԷϥ̹&9ZoFMUy;ˬ=cHQO߰m $ 9= +Z򃆆%q>-r7d]LljZ==^~jɎ?|'7N]ND&j?Y +8ͧoؐYefi!DV. ,/me򂭖U}d5ANcL뗲 _>^,=[>)*@Yr=v\ۑZ̝1iQDD?,@L4[VkO1&= @ +mb@A;w,YHQbЩx9QA @TyS=wNq:F & A[NNYD4=H Gާ|zLJuNũN]!. FA Ser (GF ^ha2[M ՝O™g u.XBXMNu7u/;c?GgTfp~؇xNA(22\*'*TWQļ-84BI+^g??תk_ljIB8"6S1%79(W_1JM|_KH(&ge*["pdfM<`` }Q Lw_ `MatKh=?ډ ԗs(hz4R}dؒ^IMx;bNZ.cP;5[%e{N)98Aa͜^vYDԃxya߶5HT 2dVk0&QhF}jW%DJx:1rƩI4vTN+.A8k]J.4XP8͍NHwIuxӠOk:Ӛ|_289UAR_1U_1UoQ`3v$ȏ.H&=בs0h"b,ܟF@VP_1^^ +&pF6O +%I;-Ȼx~mL%oS(" MG|}\],ZԡH>i$DM j)+4.,nd\fj";\qY mNȭRɚ񒨗D3,ldٍ2Q PJ7pb8q2$AH'#R%ѳD [=K ޑg tɆU9t-w_-H!4 +Sr)mdPUx=(u4A w}^D4 U.(uH>'|]o_VݵZҫ~!.x7@(ޓkxehoDU]//K~3=0PC%{umd8x+vBGtS4qP.?ebjۦ-z@Bp&f(%C9tZ84qark xjHʪw/Wr?MsՕk5N`\Bh+ ?}s4%~PZ&jC4rEQ͡@koPȏ:$3iXAVѢ2}E%HVDb@8rޑSUC[ў;KfS$u8'I%\ѳY,i vHӶga/鮯ꄏ"`I_$YEȔ&O " -rMR$(qV#?cx3<@W^B8r$W1% d3z>Gypu)(tf,T|f^Š(f5)WU@hTu27ʍ(yf]"ٗDJ[nz#a 42GQm^@Gܺa;1po +/|LPݸD.y$׿_}^+LBr{׺'go-z95W ~}ޕonպz<֚{3L>pC/Íhk~>}BDs :P{פd/}@{dKfP-z@1NZx8]߸>~^ʳnp`zY_A+a:Lh^k @<,?m?#3ӱg?yZ8k>(կ=/e56Nqc!KjȢ_^wi//KW!515gȟc _8O'o/IxT=y<0D"_>V3a{UwB<ōG%ϐ-" +endstream +endobj +1546 0 obj << +/Type /Page +/Contents 1547 0 R +/Resources 1545 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1544 0 R +>> endobj +1548 0 obj << +/D [1546 0 R /XYZ 90.925 770.89 null] +>> endobj +1545 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1551 0 obj << +/Length 2342 +/Filter /FlateDecode +>> +stream +xڝXKsܸWU*rAqىY%J=pHCI*{ D\f/۳&Yv AnXHͶ?/T{8b{ͻ߶?۞}>M&EM%" Mq87S·6e`)PBWST-7iQwM١VW7!hq45͚(mSDRE9u`ZD3-옶Ӻ~ Xz,gOrfR3xElG^G +R׽) 0Xr7W=!o붵q,\E^.N`ؔA縖4Fh^5^3us{#MpUF|z]?~ djaOKS;.$6^EAXȐ:%Mgv2=KG-R-jX7xYyƓpYj!CDcFrǛGqo@ 8$i 10 BLʩ'ZZ'13cD"3?3M7}k +h(H[`fQOVb@  +eQ xM#&r X`ÀY XqN1X$*HG;]2Dz$K.m(zBdqC)l$1Lvu|f%L9 ;o8_?x NHn+s +!_^lJ}w+xECH~>Ip¡^cO8Όcg?}W%"&LL_sa-W]C }?C\8i8Me{M9lۿXr)%Ihc+ !9cR +.B%a}$˦`XPKભ=PUD"%\`!d@>OT/-D Xp:_#ٽqJA71vʘXP%筽pf6:'tW}Dv!:vY2Fۿק]e+Pċ _jn ^VʲjTFD3KPG2$\G&vt~xsTwO=`  5M$WB<$Sw*oJLrA(h8.m8x +S !`[@ti6 &ƑܹPxHY)W. i˫vJ8k,8)A5{c9 +/Eյ i-UC bOa21 {eaN%T?o[AqQQ-K3lY? E/ .:)bj^ezJGhn~m~@ TJ,":䃡o9Kՙ<ai-u@ΝQ =JY8q3Bkʥ?[kߎ8qo4kW-E ර] 5./PO n2<.6|(焒z|2n`/ua,P#]^(fC΄Fb-EPedvA|eѝY?ɉq 0i~Ȼ.Q8\d V%v+`HVOL;2J+ɡ$`W֩R:Z9mO+6b+2F$9kpė̒ܟw65'o5v6UX +CsKff\ \=%ҭ5\x!Q~, BUIJpTX +endstream +endobj +1550 0 obj << +/Type /Page +/Contents 1551 0 R +/Resources 1549 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1544 0 R +>> endobj +1552 0 obj << +/D [1550 0 R /XYZ 110.6 770.89 null] +>> endobj +1549 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F35 934 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1555 0 obj << +/Length 1696 +/Filter /FlateDecode +>> +stream +xڭXKs6WHD0@:qf2}Ě!ɁcTI}X")ʍ'=Z.],Do ~Z]/ދ$HH + b$bDr77o?-W\PJ*xsww{]/Z0 F.-5B~+ 6C@EpcAVi(@Jv'۪(%S~s ;nz> V<"&+o$#'d'`V-K[ $Ԋ"/Uj5)3t@^5|:xa6آ )%Gr(f6޽ +Wx4TV{ZzeӦ@f+8I@VU6ÕST +D''>cM;&a|Z%0a~2~:ȏÒОX=YWePekjTܼs6޴t pVO .٘/2بΤ[IҘ@ -A|tvDɍ,HO,(vK02@X{" bh#C  +{,R;w] N(!q܇7zy9!}VeHI$8em_P|]ۼrv;y\)H788 +7'|5.oo W#n妷 :aAJxs3c۝QNϝcv>|MBu8]=ٽ(qoEG@w9ƸR1w~u3sesM٦v V4RMʮۉ{IfzDR8u=G+rw![=͎+<0ESP5M~_t`<|v<omԧ0(4fAD.4*ѠQADX6e ! D&s"JX0"X1 V$K$$T Kiʍ#](K|L>&*aT:$q $.g,/nW4rP|gKz'wgK㜂i@&ɳmꈁ`CZ(RzﺑeneΠYpjDã$g=?{ b>?4̲B$?Y/%q](UjT~_ˎ+ r $Ym֠*עJ?3Svo8t<ۡ8Kɴ(y(C)=#=0sm+]{e63g9,ElPz'RIx4pi׊7₿-IrRWASbmtЩJ멦[8AC/]`Ne @lu떡OٹuYZ{G*m[pzB?=&;˪6͡*7䬇SiLӼܙ:wd j|Epj~t碠١F?/o!ƫbYcvV6|ipv_7z +9h(t=>[e۵K<̠ɾ7;2>Ls,7[s;r,sLaWs/I0{Tmfu\.YbQX> endobj +1556 0 obj << +/D [1554 0 R /XYZ 90.925 770.89 null] +>> endobj +1553 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F2 1201 0 R /F50 1198 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1559 0 obj << +/Length 1802 +/Filter /FlateDecode +>> +stream +xڭr6Ԍ|3i:h6:i-M{HsHbC*Iv "i:M^br[˵~̞]:iEfg9~XqĜc&˟.٬n /tș/ȵ?_׫l5cҵ2'B+c'C+;pXf~)Vz%ƫV3`=5 +Qx4 h|RUB0 `[q[TO{rY ފnnVy^\5+Vc>Rʙgע=^ D$ A-*N{NU98OJ7I ]Qh&=Wxl)yL(J{B/ī[ +t:mG-ɲs/c[De\̵yA_$Ju~zdW H^<|>ïY?pBu>E m7trljWE MǮ aiYr#Lq1_A\=@Cy)L;.:2?e*Z0\Ua"AcܨP-Q) oI +]>:y6.t1\eXۛB|K +}љs(;UsL~Sd+ Q)gp JY +^uq|MLUcEcl5I}xU, xQc(ctmlΗm~:I !uV8*G8Xh< +N5o^b󭜳~%|ǒը>XI[D;\[#r.ͪ34rhpŒ8BY- <B xNJGBW\BUO ړiRp:*0I(ѫWײ6m+OFm7L^m7L -xR#t;9 :]y00EnE7_0\\FꉠL ]e]6UAmbz$ܲ-(UV&ވ8,V81_ +HLf(I:U*u$2{JԷW/2y]mI~`mNtI'UEmAg&Yjb  F-a^NKL1;p䁶4gEM0ބCP["Y[m-EUCsC' amt=*}]qLs#AGeU>#5/BK":ԞMdLM +:4$y4.3Gr+ZSO)%-JSf%O{i<#!K +PIsybۗ;,N.hбP7/;!n#yta.ie'貏v2 =oǹtDEKDʈnzzNp'h-Tfi?,顤W/$e8:wa3bs=@>G#S(t +endstream +endobj +1558 0 obj << +/Type /Page +/Contents 1559 0 R +/Resources 1557 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1544 0 R +>> endobj +1560 0 obj << +/D [1558 0 R /XYZ 110.6 770.89 null] +>> endobj +302 0 obj << +/D [1558 0 R /XYZ 91.925 282.105 null] +>> endobj +1557 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1563 0 obj << +/Length 1966 +/Filter /FlateDecode +>> +stream +xXKsFWU 03ʁHve$8Ȃ*[߷{zȒ]:Hyn6f\^]YLG:X)4H`*j^ynu~5/7˛ϫי+y L,RA*f?̃- yd3Kfwl1{B\TgA'">pX6sLHŰ`7b|ot?7{o6um yO:47bJжh̦+ + PWülkGpmZִ/^(X~8[VSu4,*̡nwtWGb !8 )n20#Sx8ښ;S/ox8/nhtU& t)|T̾XDdQ"gL~O= B 2׿8j%!q^( s9炇mud^ukC[قc)6{H@Qfp o{,vX'AC$a/ 4iiVV|=&mXj7p9xxJÖMYf¼v;W۶XO؟'N:1Mn+nMxh*icQ Uh8h8U-, d seŖ @Z1_8G `E5(ۢHQ$St=sMfģeg2uc|x%L$NR)Yu`Ő&ruHSEj7PcYq$ 5ޘryH%蹞#LM'HLM|o[k-R\Yy\T~.\1~ ю{yROP<9eLloj+0+gȩr%D%5EY]և|stnDh.:].w浯^o!M^|/}~0K?"X/$kZI(l|r&];x 4:iJ2,ZՏAo9t)4<^h)KNlPcwޜ}ԷM~8j> endobj +1564 0 obj << +/D [1562 0 R /XYZ 90.925 770.89 null] +>> endobj +306 0 obj << +/D [1562 0 R /XYZ 91.925 608.812 null] +>> endobj +1561 0 obj << +/Font << /F39 979 0 R /F14 1207 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F58 1221 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1567 0 obj << +/Length 2784 +/Filter /FlateDecode +>> +stream +xڵ[K۸ϯQx+MN6^{%PO5R/F)h4~-^|.x?|UVB0U)E_|?3iIJX>y0Ǜoo}#@)JSRbpoXݏğqq,>e +V_QaM`2= }߯ IǴV&?5e}^rW,J& 1`b}q~/fćwr=fM{\כ]~`ߛyyu1qF`9܉ø8RQ/4NEP +*V+Ƶջe\ jH˜)7QO[8>3* 5VLg⮰B'0l+J[-e*-sj`s"aFp8ec^|*3.YdR$$`\`$ lY%IOE.,3I4J)S}B*a%j}4{ԋK贂BV4Rr›\zPp<'1P;+U{ٞ9Tu^$I61FM6&b4B R+ՍLYQ2Q(y?Ru S6U HAunE.ֈ8,Ry$*`,DԹD4J5bxub3I\=ijℓ$i! ^VW$l)”e LYeqB-b;_[J< Oc) +D,QRo\%l2Pq&O$ +HU90bB9E.mU?*As;}]()a fue# W#H9vEro1X*c[JU JVK$a:WA%c+$<+y`o:rLT"|>;e %f=E&9@i\2VWkHFG)+ 5˲XKCS#xFrJ{͆Z1g}B{3cRؑ)cGfj׬g6e'qxq=݌=x]uW}xׇ$b%J-"]}ާ_?m5 b}~E^LaEǫxL+U$vwtfuOzG3x@ٻMjmoIe'*Sv;O݈' =fÓm*˺><cCk‡0O@F.='}jYB[OTYJ?eS5F3i3OH h~]ziNe4ʷ*piµE7HtBOmhkK): KR~`,hAlG{O럶=4!Qpr"Hp6m<޴1vqFۖ>5YvŐ|hMw; +Ũ$1|I. 0zOZAҔτ#eΌF'UcSYK ca#fnX)=uBXV#+?SGҌ<~y\{շ;í7brUAc=ۛr~$@Ϫ!0GcCR +>EJnO9L$Gwun~|!r90M>Wr͌q)s=&bQ4X|4s?:E|٦ Ud䩛j1 FٞUg!_5&·߾4FGBPXǝgoNgp(NݷEv9 'F!Ϭ(bvO/b$|iۆ;V˾>a ,i7%F! +endstream +endobj +1566 0 obj << +/Type /Page +/Contents 1567 0 R +/Resources 1565 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1569 0 R +>> endobj +1568 0 obj << +/D [1566 0 R /XYZ 110.6 770.89 null] +>> endobj +310 0 obj << +/D [1566 0 R /XYZ 91.925 733.028 null] +>> endobj +314 0 obj << +/D [1566 0 R /XYZ 91.925 712.582 null] +>> endobj +318 0 obj << +/D [1566 0 R /XYZ 91.925 442.6 null] +>> endobj +322 0 obj << +/D [1566 0 R /XYZ 91.925 317.757 null] +>> endobj +1565 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F50 1198 0 R /F29 898 0 R /F2 1201 0 R /F31 899 0 R /F41 1063 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1573 0 obj << +/Length 1872 +/Filter /FlateDecode +>> +stream +xr6jfNIƍt:I YL(Rb|L鴇X, έ#߮yY$zDIߋY[ n-D?^8̼oy v*Z Ws'=NkIJjٕ A(y6Uw(7{i\N1HDY|p-;ohd{k8jEW&Je5an Z$ܕxHN@Aa?-{њOJP_ ۉ;XYw>㝲.BX7[@ciAF r؂y2vIib8U k%C%s(AQb϶{j0 +E@08,aUYwQ36ԓ FSK?v6ctlP9Z2Z@S+hb=mƪ Q r<8rS1ԙ-Ae %FPoLZZ<@@l.BwI[!"` < +A7W}ॾYBta )޸i.|8m?`&@$4%䡁WwVɜכ-1ؑjiJf\x%4|Ke&皉ǎUbcʊ$^OfrhzibI.* + R$7Eg¦AC{(e 1Ǽ巓ؒ=|! 9yk ҉|!}\$-ahY̺-:g;l:טXA#L̾$'75C~QW9z۷m? )o: 쿸b1HV|DcWct4 ]\2)Vʺd3ja +QՖF'GvpR$ĆG~w{9[\h@z_ 2Vnip0yT[11IH&" -ϡdhlPn~TK2` +)hhYF'lv#z}K'i5P9⏪gU7sjKp;w:vb <ۿxM$:,U*P kfU 8HD{-yKG4sϰg0UK;YGZWs܋QT6(~>~#: #=j꫉' "/^ s`M<[/#6Q +endstream +endobj +1572 0 obj << +/Type /Page +/Contents 1573 0 R +/Resources 1571 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1569 0 R +/Annots [ 1570 0 R ] +>> endobj +1570 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [126.904 338.857 212.183 349.761] +/Subtype/Link/A<> +>> endobj +1574 0 obj << +/D [1572 0 R /XYZ 90.925 770.89 null] +>> endobj +326 0 obj << +/D [1572 0 R /XYZ 91.925 280.889 null] +>> endobj +1571 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1577 0 obj << +/Length 1589 +/Filter /FlateDecode +>> +stream +xڵXKs6WPS&Aq4IkN.I4 YPJBVL{2b/v˵^^ ?'JV'K+zJ }}z|ᅮ9Eٯ<1c`ҵ0'B+c'C+>~vxo,W?hɭxKj + 7R- &ah-WsG1Uv5<Onʬm2ٻ]_OApQOnx5eAw0FdG˽8YY?W릦UVᯨZU9e[jW.3 +C{H] ?d̓|{?/<ϵR=bxRoI +9 Z\P&{O7Q] {};g͛VfŬj>ʋU+ +2OR-8WP(D_F_z9ɒ!XIu=T-Bsf״4{6Ņ;.5jx?-c܍6ڗҖ=E 57RU ˛}5pes0}b)ȢHehpCVti鉂Q킨&*A%KiڐF(9Kah9 &pYKn<3O{|f,kRg +r'Uq# +(F9e ݲ)2HHY<4E94Br\;Seŵ{Eڝת$ԀT*d/zIN{"7Td**HE WX^\3cL?Ʀt.OP1'CoHBjU-NBS~6lBХc-iGNAWT1̮5\!VDbEJ7>YY!yUxVn@KezK7ME" >JfGӥ"Q u:V/ +p=hL.Tp] 3OK :j杞g n b]ih_0N cTm?2If698[r_O/B,p ےKg'G:V&jQg+ļybKc#v<:Rs!X8`N.aD/;R}7 o@H@ # \*8\ݎ,f/+a>a`(Zɝk9zf>G+go"$+&j1C^v:N7Fҧa`r?`ʸ7~eY+tnͯ\f>I.{*_l~Qk`t_пTջ:}#niYF/4+.WJ<6]7+w܁Vu[zN|'dե;R9OgBj< +endstream +endobj +1576 0 obj << +/Type /Page +/Contents 1577 0 R +/Resources 1575 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1569 0 R +>> endobj +1578 0 obj << +/D [1576 0 R /XYZ 110.6 770.89 null] +>> endobj +330 0 obj << +/D [1576 0 R /XYZ 91.925 419.977 null] +>> endobj +1575 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F50 1198 0 R /F14 1207 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1581 0 obj << +/Length 955 +/Filter /FlateDecode +>> +stream +xڭϓ6+t YvzpuL59hAk3aLAϥDc6u.=yy.ϙnGvBťܑ4(!ߦLlp0y r׊xg3.ral>nb߫de'eӣ +5|M8S~twF#g >uʴeL}3bx ar,Œ{hx9w_ e=093%i +a> endobj +1582 0 obj << +/D [1580 0 R /XYZ 90.925 770.89 null] +>> endobj +334 0 obj << +/D [1580 0 R /XYZ 91.925 223.26 null] +>> endobj +1579 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F50 1198 0 R /F14 1207 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1585 0 obj << +/Length 1177 +/Filter /FlateDecode +>> +stream +xڝWK8Wp׎GvR$6$AY ^J忧8{nujzz*"+r"VxQhZIf}~&Ⱦz/7&3q%\+r+ xJדO_Ges7ԇ:rO4$g<mäڼkIωJ2-ڌ͊5yufEnJf͆fXiAFQl:tht>: A#b2Uʲ +pRC 'v[r!lY i۹~ң_Mj +L+ZZ0)Kq;tY M. p* E532kٸ;Y;Ǔ{KgX |`M[FP +Xf__EG|~}#Nw77XsRɜx&Gj /9Os}ᖬOD}Eb^dB +%; ]"oN,"ȴ{Er~G01(jՆH'h[ɖȍdM!̔$.eABd>j ]+~h va 39?aǃygV}4Mgvlr2XRg>ڃꀉWUQTwU<)zbMˡ9|:Ikyq2 /NnZw:< ÊG(DI^ 3z۽\ݣVmY]-r +VO=\b4v|hx^v[i +endstream +endobj +1584 0 obj << +/Type /Page +/Contents 1585 0 R +/Resources 1583 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1569 0 R +>> endobj +1586 0 obj << +/D [1584 0 R /XYZ 110.6 770.89 null] +>> endobj +1583 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1589 0 obj << +/Length 1594 +/Filter /FlateDecode +>> +stream +xڵWv6+ uNi,, PJBq҉OO f.@l]-g_IY\;1&Ny,=g;ܗo/׿~݈aݗ?]_?/ͮ?gKЉØ"tgF9/K~aKBB)*yȟ-/٫EĹg\lr@: p2 ~4T.w`&|pԙOZ"gWjSTfc  7&##g]/| +wؓ @lْv:?NvteX>C."mhi^%wRCQ47E_:tl{uߐhG'IFMHNt5Fn "d`E +-R\&9@:̜[uE#<0+[MiՆ r,cj]pFɊ\1G.V `"IFl;$n>sO5V,J* sP/f5/bUTzY  PYx$xnQöȶ;Sck+{`+ <V@j>)H$)q 郴)5RMHwOz<1ۖCn|[xR*Hl#x8tj[A(Ģl{Ӌ7 D!Fc0FMX48T ܻY5ƌ0!Gs.An@̤uBvkSkTb#]؛2bEހe +PMU] bnHƷ*Bdֲ4g쑤^߆7VM; \a;UO4vl0FFv5X+}!tЦ2u:A^DW›_oȐ۷u]~)t{^s 5Nb>',%Aq"o?Nu%˕b녥dGɘ]֐*3%m-*}HnØ6ZJ*βLuKTgCq"-rUyZtN`CkpѲעAd|aKTL,+Rf%DB-K8XpvXhHA)Q@^2mɩ[.}(6_}aM&u]Xcc u"(ҁ t&h< +݋mdR֜0,vÃ>;oj+X/'C%}wkv{Ce*/UfCTngR8Ob2])}u a$uH_" Z6`Kޑ7yQ8DÈMnX!P+RzHIzAnlU8 YFȦUVyB=/etDFA"FGS$ +endstream +endobj +1588 0 obj << +/Type /Page +/Contents 1589 0 R +/Resources 1587 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1569 0 R +>> endobj +1590 0 obj << +/D [1588 0 R /XYZ 90.925 770.89 null] +>> endobj +338 0 obj << +/D [1588 0 R /XYZ 91.925 283.2 null] +>> endobj +1587 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1593 0 obj << +/Length 2041 +/Filter /FlateDecode +>> +stream +xXK6Wf S98~$TU.H-Iyvv8SRJ.4~wݒ/\^xfˌe2YLbuVWR f+/noޮ>^]/p%_e&X&2Q KB>e{?/P #Wſ|ʖ"7*aSewS 5Fw]t52O}srW}.WK$Aɴ- ^ XM^6tۖE~Y@+q6Իhc&Bv wF,NPDݿgo=𕙲T5"9 CZGRU"9"&_)nEەRzH);zР1Sִ;S&d*Y|cz{z}a%cTh('$}"F6m~^I^DkǼA~K0!;:{n@{SO4(Ys:cӕ}D&o-[e@ǹBya >bw +m(Sˠۭb΃iMoAʗ4n.}QoFf&Μwc7;{#7WZ5E0f|L{ YY85+̀ qDPB(9O xjOf|0i1BڞFw}OBm_;^L* C(L7PBt:o7{*H#em#cr/h {'f?;>1V HltZ!zf 惺ɡ/rhd.'ӌEJA\J:G3RS(񌥉X@٠(\lf*PF!26?UO0]2LU]包fi'%GFL\vV\&GM\X*bA~J=,F=s;,x'Kj"LMSm`dP%c.$Φ5jQ1`Z}Zbx0+'3$&m VU QH8j#{qf!fآAX?+8W"aYWIIa) +ג&&jgЧ s. -U/Ġ^Kl8&TZm9x>w0vYش%$ ҋį]ߒb֜EU,KR߲}ˮo'Yxh#?Zͧg&y}q@nOlv{kB2$Gİ՘}'В;w#/ +6)>@3*p t #`@'Cbͺ )9SpN7-ĝ@'xڢPȐ\㵹xJ(FQ> +EJmNq4KGἩ5M&PS)'|>x2WkdO<Zv:-U >Q 1n^?2F=hɋ4jʾ5wE2f^T&=xEe&`fjaid>0ͧ!( lf*lefIBj' a3< @grGg-$qhN~߄Oy ,<&Ú+-99, Y;rVfw:&3/eǼeQ +=k AeIHK'P`\CX^ /< dOf0|(aH/f!`f %6<pLXl&fۻ=l&L(&^3H~6KXPY΀ӓ v6?bJN؃j\s)+di2(v.,"ZO,A&3)Gvrs +endstream +endobj +1592 0 obj << +/Type /Page +/Contents 1593 0 R +/Resources 1591 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1595 0 R +>> endobj +1594 0 obj << +/D [1592 0 R /XYZ 110.6 770.89 null] +>> endobj +1591 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1598 0 obj << +/Length 1569 +/Filter /FlateDecode +>> +stream +xXKs6Wfj qd&!"! E$e8ԋZ-_fϖ,4k/ $ N̼˧7 ʱؿ~vyzv5#`{KJ("q/>~^k=;/ a\xfغund;C}]2;r1omy)ʬ'sъ'f}  +B- [cX˷Vʴ#ʦ{Ż/ :L3ODpb%3N|YA9$o֬ v[e?olK>̞(Eʤѷ[D֘eeM<.cQF!].&"!n^TN'&54{ bάXnZQveohιp/KlEk 6o=mJW04֜O{4S ~2hMº ejes +}h4a9iPZFa!"V'.B;M2~N%?W!Z̾Ӛ0H~#h`ә491-S6`J4*08GHlK@|A0*B`4v  +EIjNȺγLn0?V0e*֭{BV%ԩ(!%Ȳ5t.ݾ;Xm^]x\fO+EPLGP:\V*DڭMî@jn9T}WbU;vr8XF3'1 +#,4-WaW{ ߪKmᴨOzl=U'ԮRq i50QՖ +J4h̟Ck9/ΠTJͲ_W!m%p})1ȨN4俘:Ep9#!g\p^6l-&/O؂jKsk#:DՐe\0#tE(63qK;wdLUN@p4DBs6o'N)@㻱u4sX z}Ý^p:bߴH4)֛JC6)Q,uvc"/J]mQ ljk#@ @^C ++k4WP +s_%%݋}Cԧ+dI]?w_:܉~ܟN(l#9A|>W f-&727Eٶcv_0*{ĕޛm-FUU!EB7snI=;x\pkf`^CV]Ncƴ)Ǟj$>>ÓC(;e7t2 |<9M]vg4(PD"r Wvū StcԄPG;'|aFX@>lhr71 +endstream +endobj +1597 0 obj << +/Type /Page +/Contents 1598 0 R +/Resources 1596 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1595 0 R +>> endobj +1599 0 obj << +/D [1597 0 R /XYZ 90.925 770.89 null] +>> endobj +342 0 obj << +/D [1597 0 R /XYZ 91.925 625.74 null] +>> endobj +1596 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1602 0 obj << +/Length 4094 +/Filter /FlateDecode +>> +stream +xڵ]Iϯ͜L99+r"hҰ(b E䀍o_zLvw_`,䵟}7J ,x%VOovrr?}7wS35KJ$f-~EVǙFHci_w,}JVI7xW8?<6KsO;\ޯﵛN#Mq޼/_MkS>|{ݕ/A|.|mލyq6)]}j9_fQÑzXv^yi}x<5Mfs(;$5U-n<4+|II_V:_o +pS#޷c,;<.eĢ\8 \U1DZG[9a{5y;29FԂ{]SMHq=Ώ@W rJc[!n[!.%eGCnS\ Aܦ)A2/I # } k@N'X:zFрXneyUַ<ûғIfWlCs!bJ +5_SF+3Cpp Z[}] eY@3eީΡ9 P~bQ{:tš4 YiKq4e)t=~JTzZ#Rp +^Cq~<ę oBorIge'_ĉDj %MYW"c-?lhNj [XC>\ES|Vt] u & L8;S z?]yg!f0= e@} Xj<0qnljh0J k +@@n5XYJ5!Rn;mF4ۓ{c>:m7cvE`z19ω=&vn 㵴b,KR MɜD|pM"-АUtpLsdּD</”2">ऊ믈CFT\1Y"RqkEgTd ɂϲ8mz@NtA+Nh]Bv&if4sӡVh +Fު.bhv2]K'TG  -\iA9P<HѱA.׆ՠѱqt Nd13kc߭F1qOr4ka z+^t*a3ȲD[y qXe$J8Nd^T G;0/A<)ad3*nGA~'>.U]Y&?&F4>HR8䨫邶4 3Uf{B@LhA]Q".mTwBrjY%ǻL5*E!K>xXaiE}v%9mp!ЯA4 lƭ(kFR.-Z6q6r;4z<=]RYdMҼXee5/mT**z9L[5x|4p5B}iIgȕv҆舼-!:NX̏xvJS#ˇ`hA$1z&.D?J'0t_W*‡fL#K+%2:TQF7SEqd֥@_Ax4ɺ$"xq!rQV!ؚ|bBOW9|hFeARgZցJ%$"{;L,|'N8]t: n}n#IQ֗U{#HPzb 9ZA.V +oͶ;9oyS\u>YV)6%pb;T̀V"Dp<ΫۂKPV"v5a[B*@96XhuLp\.g7h|yb=1N2H'%hTR۟^M.ڼ܉ +:WPa-֐\)t{aF{F|4\Oh#k$y0B +endstream +endobj +1601 0 obj << +/Type /Page +/Contents 1602 0 R +/Resources 1600 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1595 0 R +>> endobj +1603 0 obj << +/D [1601 0 R /XYZ 110.6 770.89 null] +>> endobj +346 0 obj << +/D [1601 0 R /XYZ 91.925 693.262 null] +>> endobj +350 0 obj << +/D [1601 0 R /XYZ 91.925 660.078 null] +>> endobj +1600 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F50 1198 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1606 0 obj << +/Length 1831 +/Filter /FlateDecode +>> +stream +xڝX[6~ϯ9HN(mʦM[Nm-ь|[%(9azOK#9'ĉ#J:}+ +70//_^.?Z\/ZH)KUa~lOaʃ(~¹\C,+z\r@'DQl\EBQo\3^ ˓7˕=}*,/Ǻ:BrWOhU +lwVi Qiȡ8v_m1?{s*7m^em}ĨƨZGޟ0D$,*v_MְW2|)ñн8Bo=Oܲji)lKLml#li@lL1WZdH}AIglrx54p`M z=qJPn+r2t6^Fejiρ?z{_8w4[#l24}k#</K"|;dT<"<} -#0Ȏf%IEQDŽɊB 9JbDk'o? s5EQxiȄ {EBe\2e%`/4Wqu-LnTk/ k賩0t,@{g,#.(>ʺ2 a"-|B,,M!GE#]$@М HPAn^߰IfWp-A2(6FT3"=Ƃc Z]Sc0hJ W0D% +ft>DD4u/C^du?7Pݛc"%ux¬k[3YH4J #]CP̀Rxaءοd@zI0I%s<]y^v*.I暈x7{DW:X°S0P`M c]bE(Sb=jD]~mNYџHľB[&P/]ӽm^T {ӑ [f!XKt3'َ]WZXMU]puy''9[TIêC9ֈ6񾣁V:?v$) r,zo +h/5^ȅE%+NzN2ȸ:+9#djOv t텯뺪GҺPv zfty/ { z{ݡgǣ.07mq]WxUN<"od4?Reh-tüQ6l1/詃&6X3V`ʶ0o5Ln߼y3?Z=#+h)#zdCeҎ7gi-3+7o2hűi]u+x_ t$5& N3uG2Ldܥ> endobj +1607 0 obj << +/D [1605 0 R /XYZ 90.925 770.89 null] +>> endobj +1604 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1610 0 obj << +/Length 1445 +/Filter /FlateDecode +>> +stream +xڭXo8 ~_+;a ݆km9vf9GRbRYE~H*Tug1lp<+q ٭sxIlE!w[ɞbvv9Cg8BfO__]] fo&ŭ;XQ9Xj b\Y9Ự Xۆel0 ToDnTkW8r%IV"O|m(uu IYZUC Au*X,zC7Z !J^o*DM5yUjd6\WXnj1Bc: ad^fnE?Y`,+X4].k!bӇ>> }"Ș´rf?I:w4*.Fp{1qcߕK1m(P ]H`|e_d#rwxgY@s\ YU6i^JZO47~=õHfxFʵr%jmz }4m]r ǹE@03[YHOAJ-m0)W8BT5&DBZoFtG wh 5U߉RQEB^A$VaNv^TX$2\ S4e&όG&}b~nI; +{ZSbS"[&0j]nŦ}ڿuҌSw+c VlP:38kaw\!4L +.j*>u6-ӡ^?7doMoE3zI3w/L}Ǵ؈zAwh07"Ϟå3MIiz|N5Ue(iyk\+=`t\>sEY~#IA8ύ=V$z'.zjwsp߸ L\S_|>/M,ni4#}сC8\!( N;vh3KN^.zj5euU7yKh>:ҷLnZ7P8}nWZ7iHdWPEUfj?c(e~Wv59> endobj +1611 0 obj << +/D [1609 0 R /XYZ 110.6 770.89 null] +>> endobj +354 0 obj << +/D [1609 0 R /XYZ 91.925 690.598 null] +>> endobj +1608 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F50 1198 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1614 0 obj << +/Length 1560 +/Filter /FlateDecode +>> +stream +xڽXs8_LL024sn&饓O恀s'ḹZ ߵsOcwݕ ΓC vb/f93}/#g|/3Ϝ{hLC2o4q/nfwww|W";4tԛ'h[Mr&4H0Q¹1 mB%KI +C +zYBTy>!ĝ (q_] Tk.Ԝu%(%؟z~` L^ͦ恛>CG.kpC%MzFNumKeBԜ1ύ` ܬRk0 6m 85XwSBc>r\J>/e^I+?VwWI%gbDCw/Syݲ$$N<5 +\^djomgzq6JM~mE]pGn KgeD~yWf%˚AƈK-u[~qyL!.6CPN(} +)Oј5OE}y,-] qܸ%nQ\"W-ъ*ŦLkA4hˆ_z#Jm8f^D']xO WCr5hy bzthQ&bȪ ӆYgt"Rjx53sz{ WCY̩mVV{ ʋLi`q(X&D87i,V51UPCŐ400Ժ- /~,ƍga(MZ)+s;RzP/ +~BtY6c l V5iS +p.4jtRf{]?6DQY'BZcL  DbʁHV–YEU6/Lyi^_HM~਌ +A4cM ;_MA"y+nIcr.d8||Zwz}9?wЎ:p \>7My 8޻ +xi=qgI0n ua9 +ϺE|iI&ܨ%f} +*:gGf$xM͙- \U뉻ڑ$/6O8Nfmtģ&|늎s"^Q)BO2Srӣ1[x?ឌ\T^A:n7. u\<<;h*7<&5)]H-tLxTrKBTBS#|VX{(FUОm[d+Tzcc}R5T۳xmڼО4ޮpKû>g69$2 +VtwodFw@/5\ }iE,FNZ MJr7KL{p`,s% 2{QQ!ViU +endstream +endobj +1613 0 obj << +/Type /Page +/Contents 1614 0 R +/Resources 1612 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1595 0 R +>> endobj +1615 0 obj << +/D [1613 0 R /XYZ 90.925 770.89 null] +>> endobj +358 0 obj << +/D [1613 0 R /XYZ 91.925 733.028 null] +>> endobj +1612 0 obj << +/Font << /F39 979 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1618 0 obj << +/Length 2269 +/Filter /FlateDecode +>> +stream +xڭXK۸ϯm|vllGU>x}DhD"$ )q<\$<nTޣ_nC\zePfQ歶^A\^Aު?ݧϋe*? 4S=<X|[z~uM*zeQiqm7_)_=EʟH%Q8{.Д,e 2TJ3[}`b^v)9̟>DcW Eۻϋe2GF<6ֶ~nӲhkt5 ȿEmsx,>GJnY尨2+նk6e͡!?-BӾNc|G dڀ.,MA2JPa bMj>6o.w>q4^Axqo_Z%H-w1eA'Jn x|]QM| oHŗE1Xe8Y +{n.6}BOz"Nccgʧ=DDMmaЅ"6nVsTXi6 Fa0t|vͼ,{ + CSAꇾi5*zlٶfBV6.ƨ[ +҄i[-bqz,v/K|c diF4u뺿{I$iwDm—$M֒GRے\]L!ao0NbSaUm7;hMjk<=;vg.HnEIݰ/Fo8)!ck#h .R!~6p(`e%G{-B85 GE>Ar;=5f V{=ڴwl'kIxJ&,b!aF)E0twx`F]MNSF8 +F.||hbMaPˌSdu%s ͙ɐ(w2tB'"(R es!86{QA>Vzd>PlrW)G θB8'A}1.Uʃt똬ZӵWCfxs>߅&JvGT4U1/)4p=(O'#bxjХEm?Ȃ8'9En*ȋ0B5!L t?OӌЊ؄m9I;v@ZB hZ?K!,+škF99X4:FavN#!M!;A +~xsqB!7L]O)FA&NɚR_Jd$Pq`9)[4TʊQ91|NGJS EH{ˁUQ@\Qi܌gr8: U[W0m X5Ěk/i>Qr_#zDwM}&yRYR4ԮVĦitgȻX ӈ'[Ɓ1K^3U7/ie@,hm +eFw>sںAZ<VŐgBcs#9yaq#G6N$  "Q2Nv5FEYiI9 "~!eb>3-1~Lnޭ9ۋ=gGˇ~!;\v"ɝQp_X*3)nʗ?USpBfG isܭ22o\GV/,/TjoxF|èȘ䖡u.OG2c>,.'ײjj)Χ DvFe+]`۶?-t O`3U/ e:s!wgV!Z@YDer۵( Ta,$YDB[w9LoŮ}.|FACme?$s^eٹ0fY52 \t`m.|U=3pQƟ3|{Α*Ʒ\r6fo7 +]0<#hۊjPsqvVFD%J*Z aK'g^AzbGϔVW 7SN)8ԌX$J5z/X +endstream +endobj +1617 0 obj << +/Type /Page +/Contents 1618 0 R +/Resources 1616 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1623 0 R +>> endobj +1619 0 obj << +/D [1617 0 R /XYZ 110.6 770.89 null] +>> endobj +362 0 obj << +/D [1617 0 R /XYZ 91.925 733.028 null] +>> endobj +366 0 obj << +/D [1617 0 R /XYZ 91.925 492.241 null] +>> endobj +1620 0 obj << +/D [1617 0 R /XYZ 91.925 339.08 null] +>> endobj +1621 0 obj << +/D [1617 0 R /XYZ 91.925 305.142 null] +>> endobj +1622 0 obj << +/D [1617 0 R /XYZ 91.925 275.264 null] +>> endobj +370 0 obj << +/D [1617 0 R /XYZ 91.925 190.248 null] +>> endobj +1616 0 obj << +/Font << /F39 979 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1626 0 obj << +/Length 907 +/Filter /FlateDecode +>> +stream +xVϏ6WCNĆaJeOb jH0@&3bFj~mAփE't'-MS:J5P$;Tc lt_*ݟ<+M5ujP-ڛP_=Ğu嫯sWYS :~toq-jz*{|~uSOs_7n+J/a2Ex>1oOh($5h^ 8㉝~NqكQfGN(\#ڏjKjʐ` g]΂qpԲU^E(Y꾨"1I[a$ē8~mZvI/q6 >P1`+b˜)1v̄[sQLZzU5:tG;-Xwވhiɼn܉:}yQ@c-?EYTSv f/j̎<~Pȵb(|eN?tG?K{5(=p +x4_4,VG ^fiSO-+ƯwGӋ4c6ƫO&&Bo'61 +endstream +endobj +1625 0 obj << +/Type /Page +/Contents 1626 0 R +/Resources 1624 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1623 0 R +>> endobj +1627 0 obj << +/D [1625 0 R /XYZ 90.925 770.89 null] +>> endobj +1624 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1630 0 obj << +/Length 1797 +/Filter /FlateDecode +>> +stream +xڭv6Qzb@Rܒ׃㗤z!"!-E*\;pI{lν#wŋAn;s4qsCsay2rW0˛ܭ>m_.>/<`)I=7C'c7B';,>|Ng;02g6◅FjYH*W([|뉔+Wnd 6˧Ǎj[][\E.T[XWGU':QKc ABog +4-չñPUU9?(oo +4joYp"; n:kpv93Y*"'T&F(MZin'ڇ*'V+/\>⏪ktIIp1m؛A%e V#8C0=I~oz֚%mך"^9c3&l.k/\R;iVM[wY[իu$D'72ق1vNkpNNG }>Pb? ۸&99MDBh+3p|wW^4ULG|:1iE2 DC=T?V:j' +G!Rc45P7A>D2Ut(h0z5獲0a*$2S}0Ot{C\9: S!pD_SL@H{cx'ƂǕ.e1->xGJ `zX fK ȵ1}WȚH!h0W-wߚ%VG"q?3w[f4Mh]?GЎt WIT[eN[Pg p2DPD]Kp)߰c,ٜH~pWRbeUl,9쫢iOtmiر/:(a5NI^S>ƽXN?~WYEuJ~lfu8J%}t٪{UO[AtmWf9qN'\\֞/wxU{5W*ǘ$̶c+8o5Տ9ѴxdnˌRW2N3C%SZ2"3Fj3sk3щiAi)%h:dd:Ŵz˶2"8ٔf4 3֠LFX`J!"΅Xnl撸6 :w40"#SqwLjn;Yt~+rBeXٮfw9JZ{E0uev{K2cRMko{:RbվmqĄl +O4PZ -$}P'e ++79`2TtD?dFDE!r;Jf-}l)پꌡSWjQ1+ +{n8/C 7[Ϗ@|pɉ! bFQ0L"m-O kF7ƍg>&z{C(Y/S9~ʳ&8}6Оqd SVjx򌤔Riɱχg"R.4V\+б(6YuU(aM1ZfDYuSKBacS, 1gը]ԲGIfUY;tM=FS-ny},hPlWu-I]QumsZCӅR(Q܎(=7}M.?V,tㆉ+(av .J +endstream +endobj +1629 0 obj << +/Type /Page +/Contents 1630 0 R +/Resources 1628 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1623 0 R +>> endobj +1631 0 obj << +/D [1629 0 R /XYZ 110.6 770.89 null] +>> endobj +374 0 obj << +/D [1629 0 R /XYZ 91.925 594.099 null] +>> endobj +378 0 obj << +/D [1629 0 R /XYZ 91.925 264.768 null] +>> endobj +1628 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1634 0 obj << +/Length 527 +/Filter /FlateDecode +>> +stream +xڽAo0| +'"%3`S22X7&#վ Ҵ]n'?3 @:_ +pnp|F0uktc?K]&ф28-"nH- ȧ>]ܺsZve> endobj +1635 0 obj << +/D [1633 0 R /XYZ 90.925 770.89 null] +>> endobj +1632 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1639 0 obj << +/Length 2633 +/Filter /FlateDecode +>> +stream +xڭZK۸ϯmZ :n#q ͦvqeŜ1d67D0ؖ%.V0.jUd~||[ufUm}Nh@/T'A Ex,VE sb! _"\_@EmxVky2 <4K!=*2}㏠\ t4 +Yqm(Vgh]=ki.y+e\^6rUe$&PpJXt4@5'J;0}D+O@y[A|=GL9+0 b)ӃDcl6-ݺ~x._| o)zMoWqe@5{0{ +Gaˍ/#̓Uq2JOjXX0ᆁ\Vm0l0XY+Pv8C{hAAXt~{HgwaE^=ёep1$WxNöYa"jö` #ESw5k#(9ih{~} DI#HbCfj7jQy +f~g&J[c3 z׻'c{=sWƹA{Ñ&i1}L@>QL: F}ʼnH0|^ؕbZD{'y"<>~^6Ήqo|kV}.wx)kDq3IJ"7_]-`oDb@EK +H'P4]( "-RhJ8i(`G\!ߏ-epwYԐrg_B'D<~:!S- * :)lqqQ J$ +&>'SP$/gN}0b@4Is^$!T;цpRlr={W'RBQuh֛櫪Nㅀ, t("^-IRW+IPN H\4"/GmT 'J83%2"ϋPwH[6Rqse_o6NQ_sn8qQw7*X+&.f?d\-BNdqk<Q RGۉ0mO&:0/WȐ%,zB` +G}DZ:4yL4,xf/H8 ˠA/G,8Nx9#k?A 4-v\bsm R3(3i}U R2@X1`Hn3޸b|Q/nUG>h…H2/N)BL>P%4X nYUΟQH1K]zBއE<ª>Ucշ:t/§_+o39**[I/>:}wU@ *H5'~ĕ4au,7&KE ^|&)pFR͙\wf%dpcoiM^}|>qw"4xTJZudݯEmoU/r +wM٭aͺDY{ڲn'/T%uڳWQῢ;]L_f.P}F" P;Y> endobj +1636 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [307.761 370.672 313.739 383.164] +/A << /S /GoTo /D (Hfootnote.3) >> +>> endobj +1640 0 obj << +/D [1638 0 R /XYZ 110.6 770.89 null] +>> endobj +382 0 obj << +/D [1638 0 R /XYZ 91.925 733.028 null] +>> endobj +386 0 obj << +/D [1638 0 R /XYZ 91.925 550.016 null] +>> endobj +1641 0 obj << +/D [1638 0 R /XYZ 106.271 99.776 null] +>> endobj +1637 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F58 1221 0 R /F2 1201 0 R /F50 1198 0 R /F31 899 0 R /F14 1207 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1644 0 obj << +/Length 1543 +/Filter /FlateDecode +>> +stream +xڽXoF _@t=bn75M]!͊tʒ'x_ϖ[w/GHb$V "bbEϵ`_ތC ؞[aۣz:kplV (PD+]٭Ibk#(z?x7JA)abE3  54o8&j6g\g,-h2K9R[Vχ.J@Ϫق=l]Tf4dSbiV,?b챺Av`80M +.%>ӪlzUȝcƺqbO)ӄs93Z9+S yҶؾV (r8^ycN +(`KVy$wZ =]VfR'oE0Bh*UNXK2+|K0j\M'e(@08:tCm T>|@wQw0\H +D +iH +0@BHl[eEJ0LFLiT=\:Z/ׄ:Kd}a#܏WBQT)V%8Wr^E5{%x*`j33$0RU|&e+C_ +SW~ϥɟ~{(Te*# |fv/,Auy 9O<{Yq5\'eKfielc64g<+^&gvI%8z=r0͖ C'VpDz.Yͬ5_W⠤0Rِ{=:V0Z 4RԋD(zE:.6޻g|J8e= (ߎx]G~&j Hf[yBDd +f&]/vfy+rj^_yf})6KcYv[P}RG{yOyѴ๺Q??K)@p\l<aW oz']YP^@]0/!5BK(bSyE9ZI.FΘCn H^V!9[ +ݚ\Ŏ/^'ԑJ:'騙BI`G<UXlɪ[yr09p)je]r/3sTpWǡ*tSd8ekQeJ̼LuI,|\X3Ts"O 4#ݧqlG&׻I^1"{ʉ) zv|wyJRЦq |#^uV)`#M?3%+ Rn &sU\ U +UPz ~E[j_Zi=v=Rr>oҺPؙ*ٶef(LT00~9sp 8W9@O 4IyHǗ)ij͗SQmS_ H$0Xz +endstream +endobj +1643 0 obj << +/Type /Page +/Contents 1644 0 R +/Resources 1642 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1623 0 R +>> endobj +1645 0 obj << +/D [1643 0 R /XYZ 90.925 770.89 null] +>> endobj +390 0 obj << +/D [1643 0 R /XYZ 91.925 437.621 null] +>> endobj +1642 0 obj << +/Font << /F39 979 0 R /F14 1207 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1648 0 obj << +/Length 997 +/Filter /FlateDecode +>> +stream +xڥV[o6~ . }ȲK1']imDEHʖ\;Z0;W9"xzE(Q(!/Ca`:(нu=t)Bli@ۡo]>.*|88A4ġGQZ;Dк,zx t7s@}QƂ0B( =yfBs8\dhPQPhWz?&UĄyubZGɾڂI&XtSP/4g'l |vD&>08~ cʈ`7 AJIUÓvzd@o͈&Ss',?tiJĈb*򚉤8omr6><[%f)\$%L֫|Wv]Q:od1wj8ox!6?TQTԩ1e:~~Fꆋ2)Pz$.LZ2+%P+KQyG=yqۥZsZ ("/o'vTS& +cM"}g偨+f;4diAmǞ&^!lxD + eJVՉ$d4 +7XRSӝH X[e 䂯lO8( + JV/xfyڒweUz0ơ]ӎs;=%x6e`BZ`zk˼`9Cy;IW]3!)t +XpcJhk;:6דM1:nU~KWUӅ ?Z&LwLyuSQon0u_ GM&#)U-#~&CM>jc{m>0*7wB6~ fX4Fۅ{Ǿ+PlpI.~nh.||<UKKL=գnG/N +endstream +endobj +1647 0 obj << +/Type /Page +/Contents 1648 0 R +/Resources 1646 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1650 0 R +>> endobj +1649 0 obj << +/D [1647 0 R /XYZ 110.6 770.89 null] +>> endobj +394 0 obj << +/D [1647 0 R /XYZ 91.925 476.709 null] +>> endobj +1646 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1653 0 obj << +/Length 1799 +/Filter /FlateDecode +>> +stream +xڕXKs6W5c v&4c7LmtKrHbK +It߻]R$E9ŀ}a-{KX-~]/J$Z^;gEҵ֙~˕ 9U +{ -#~zmpaV: ( tUXn Kbp-_z|֧ 14P d0 W^2 +43۝ƍgjv?vWeMGU-{]tJZv +[hc\Q?ҽ+ +6H>Z@LByWK H{S-e`?h}|ߵs4ދUz}&mԺ›TFmUft>'ooD5qECn+OyöR?? u#{n>QX$dht=< 5QoY,{:9i쇼ݍ->VהqpyzwkV +)۪(ћS]-u + +THq'j; +woMdLTB!열plݱL1K#IĽ_ 9^tQO==.Tӌ 2/"޴/WC'} 1qIJ/ ;(hLc3~T7^٦BՊ BBœTaH+8LNQQQ~]Թe^غ@X}(R\I82;I @pVڞsˢG97.|=\ASSr Ư;J$L$D$#_\1f2W|Z ?bT[9=ӵ%wmhߧY볻@4-ФM[L?w8`" ތ#N| lRj]̫p[ii˦U.1 MҘdSP!idƈRrsve\c &an{qigIDž* +'N5ɳL;$̓qґZC-iNp7 { +i7GtF +ϼRtX$P'&h +1OL5V4: ӌ3RpbqfžrDw )uG8sh"%](!yM0:ZJ FEwϬ3%뉦i$;a<Ltzt.ξ_Iڀ^{ϼ[= ů؉`v??ٟe~{.߱_D7b_z 鬳ӧƕIH)3HH$FBj2b;{A˘-HxzK?#N7:M%;4Pn]g\ @,6#11sVEZGyͦd,xxG9nCAA;ŏ7N gMP:2@g6N4mW&'{Z$Y)E:A +htvǪ +endstream +endobj +1652 0 obj << +/Type /Page +/Contents 1653 0 R +/Resources 1651 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1650 0 R +>> endobj +1654 0 obj << +/D [1652 0 R /XYZ 90.925 770.89 null] +>> endobj +398 0 obj << +/D [1652 0 R /XYZ 91.925 497.397 null] +>> endobj +1651 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1657 0 obj << +/Length 1160 +/Filter /FlateDecode +>> +stream +xWo6_A&BQ-eIUomdɒ&1Ma<ʒl%5/dK(}k4C<m:f`߳LY$J{h|\j|zXwWswћ23@9% -3d.]m$@{CiyT;0ۤ낼1CkEm3/<\W&N|Qjp + q=P_-Z7UӇF[/b)R)YPsuwo \y{hyor6 4kJu/6vZ"O>PFoD\j(jb?It僋{93С1F%vYKz7žxU5oix}sR.=EBеѿaKHf{Wj ߆b!W6gwH=’[?'U|7lFŷؙ#v+xD|"|xz.@C5 +v 7̗8+au๴6Qݑ7M|MYcb߅7k1r*!g-ٮ{*]j'P< +5'٣Ax%Fq[yzSEn#R"ӒwZƮ +\14Lu ?Ib፲mbF&= +! +endstream +endobj +1656 0 obj << +/Type /Page +/Contents 1657 0 R +/Resources 1655 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1650 0 R +>> endobj +1658 0 obj << +/D [1656 0 R /XYZ 110.6 770.89 null] +>> endobj +1655 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1662 0 obj << +/Length 2174 +/Filter /FlateDecode +>> +stream +xڍ˒!U,3f'3Ngb˵=PdkĘ-Q 4EJ'vh4Ɠb՟J$Bkd;P8'mndyz9MG[G}]/կ+]KXp/ r"XYrISVIǕ>K+w*/& +W:qlEB8{x .A+}T ~"c(1ZX`[7 % m&U.CҶR}<$t$-D^Doɋ"3'`}ASzɇL'Ni &]w(:Q%%CXUJ,Ј$W άIB*ю L +(Oӡ'rBQ{*5:nn< o@3#ˎfs0dzYcu˞Tb †y G=* +qqߞpLyT:c  ߩ,J?t@( |CEx,龑-2>a |\ci?egu}K WH&~/˜ZecE>KN.wi dAn x`̲}o k4f*/L[ZaZZe 0`LV{ h1ipo4~P+u +؛L#4Xdwhm2N.΍m]|W*u_m3Zؾg;]5D;_|RiKJx ud-uP-f Ej pu/79 fiS > endobj +1659 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [90.929 288.331 176.208 299.234] +/Subtype/Link/A<> +>> endobj +1663 0 obj << +/D [1661 0 R /XYZ 90.925 770.89 null] +>> endobj +402 0 obj << +/D [1661 0 R /XYZ 91.925 538.906 null] +>> endobj +406 0 obj << +/D [1661 0 R /XYZ 91.925 409.626 null] +>> endobj +410 0 obj << +/D [1661 0 R /XYZ 91.925 217.446 null] +>> endobj +1660 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F35 934 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1666 0 obj << +/Length 859 +/Filter /FlateDecode +>> +stream +x}UMs6W΄0 dnCm4!́A 3tUw5%'/7sVJ*HVH+ |l=dIZ(N? +69}||}<6ms"H-X- R%+쏛8iAp9#exù'6ou:?P8v[UIAOI*h7TnkE775=D(EA#Jc韜ˡݢ&͍CyM '%mG@)PӚ·iΎG_O(B* "fѪipx2=䮭C@h[IA{hΙqf: ].=Edv!7ŗ4Q k-0sqE@9p#!I?Ǿq}RT3'0y(To?RA|\;_r6i7-hYmx|32l{ dEd CE%+Ť݊X&.6aWzV~Y q ) 7yٿ6P$Ϙ; +^VJwQ3>xmnFLO C9Z][%J^7OCd,<3tj5Z4DVH2Ҵ/6(Z,IO75*C,KV:P3Q]HtGGDn%9R +hby9mp +^b\(^3Uތ6@M㩙(oJdjLU54/ kwDPIR9N6`aDK +endstream +endobj +1665 0 obj << +/Type /Page +/Contents 1666 0 R +/Resources 1664 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1650 0 R +>> endobj +1667 0 obj << +/D [1665 0 R /XYZ 110.6 770.89 null] +>> endobj +1664 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1670 0 obj << +/Length 2537 +/Filter /FlateDecode +>> +stream +xڭZrWp)״NUԤH*ufAKl[ղ8_sDփM+ V_?' Jc.?/+R%7_f?>]ͅf3w,UZg9b\˲lsiբ媔ʈ8` PW9g~;fe[0YTEŔJeWkfywMvHj]U~مU `vhEs>#ZBϾ>5A%;>˦ٮ_I?҈ZV]sr6K2B]5oBǺ<ԏ B~Cw9'$6&b^zݷa:`USW_۶ۅ=69ҍ)Er3=|M +`s &$ho6E׆OSh~v [S&k{HMWC]i}Z7j!Qj/$I"4Dv۷e:\!\mY5r/)u&|i )d[!JҲބ!MX6d 27GMXMA t͢햽1/qA2وe뮫_kh<4 wT.y}9h4oqm.)@L4΄UɘOs P#U2ʳzczKC6M8 \ :nu|ss 4?]ElBd8HbF|ՕCc #!:/r;$Tn`uu'U{YR$Qk7)\Qb҈h1z,o8*R;7x}8]6Q{ŋsl[G'(8w$;9C4rQhd@-r2A2wpTKab^|~ F ) Fi`>;{Tb엊U-KDx6}Z1br{<%jZ>225BVRapSK35Ƈ"6hF|Swa݄<&to&i,Q.K4Pvn=fxYըE?p4Y m/ ç_YCU_g)Ĭ,ſ?BJ T%Th)2D,E*A: (!KĠ:{W>VF ;벲gY増(8Iie +^RpOه*@#R썐RRo Ԭd Ѝ$L2yD$ˑ8MZW2})n;P %"p8'ȊJcYc,$u9nnjҰ{HW0p rP(Q2c}鴺 Zszw%9 ĝF+/sWkPb #x%KG4 .sfD46<"+tioV:Q*C]gKNY9oTlr&(޽VLӨ5t#Y!8 "M^1_⤉b HHn(ޗGP`fZ؎Jۅ>0ȳ\ + +DUrykM|FVWlCvVoy@čѿ?sfuy !#E'2b^ +Α8 D1y!K%O6נ'&'Kd8F!Cyw;4˱]g7n-3{c~lDeEAW#5)ԐJX0Ji[EKR3yI(P+]Ǔ%@Pw,4Q +U4dzr%Lbg|i2`77ps9 sd#*$mYσGɼ[1 i8kߔ2lƈjL ':Og>r *z4QజgнOGxIFIH8{gDdrrv~}'oak8lʹ 3k9Lc{1SJy=&QrѢ]q9 uV-Kvlv^+ؑҘc >-yiެŐU?lXd4R<.c\2 R) JZ=\Ip?Ϫ$k DSM+CA,ԃ3uRXMA5]fTY$2$?-& 9}8%)Uov4F\}8yo89JQ +endstream +endobj +1669 0 obj << +/Type /Page +/Contents 1670 0 R +/Resources 1668 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1650 0 R +>> endobj +1671 0 obj << +/D [1669 0 R /XYZ 90.925 770.89 null] +>> endobj +414 0 obj << +/D [1669 0 R /XYZ 91.925 733.028 null] +>> endobj +418 0 obj << +/D [1669 0 R /XYZ 91.925 550.016 null] +>> endobj +1672 0 obj << +/D [1669 0 R /XYZ 91.925 412.387 null] +>> endobj +1673 0 obj << +/D [1669 0 R /XYZ 91.925 381.218 null] +>> endobj +422 0 obj << +/D [1669 0 R /XYZ 91.925 328.41 null] +>> endobj +1668 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1676 0 obj << +/Length 2292 +/Filter /FlateDecode +>> +stream +xڭYے6}WQIʺƉSn;$Έ1ENDʎ)f$O@їӧ 4b[aC:X<*"8 B͈b|/͹ӈJO_&_2iÈ*UHBv/%DWrH.Y~ zVOR1J"%+UԜ47?U1Fg4ܬ IB(\+wpV Fr)LDqhjht: |P$q"4x 94[C3 "$L_ix8c$^mKZ4KLҏdw1$r9ʩQd:.Pc$pؐ!|Kd bbpR,iBr?DZ\Q+FVtrIRMhuKNNA_>t9Fhzz.lzfY"~niЏeu݌i\E>`Qzf;Hʫ#%fcp#DGFB*)Fo2INL"ڽ#PhCo!!d$(C!ٟ(BH9< O .p8IRqYeN?R!ln`.ѹn}62A|>XC=R?郿̸͙/k9d@0~gpk%f-* D-2 B\@c5p]Cl\\! +oX0LjTT@DmͤZ.KdudƉĈQCr?QEc(7&J23* w! 2_0!tB wͺ3ExJnU[e""4Ze[ ʂ$IlG6IR7;363B .Z S$z = +3/#鳖crCQal@"-pWzYE 5ΗP4yt]Cg@_}!Nj%%hM4^ wz]#6 1ɓ]b +DWnޱc<;Qn}ve?YV s~M7Oۧ,&yee\]_EK.W0.k't"nk/9 ݳ״ڸQ0(-T2{{gsvU E O1dWh=(AO+37urYqYf!6Y.Ɖ]GIFk>oWϺmqL}65bcީ~ qbNfe\j_8t jiͭ4 [rA]Nn^Ts%oqIHp{!p%$cWhKԾ.v^΄$+rhNs=|)a<5&q^P^9PO8ZLȕvdcۉ\;4NKXJ"leK7ơ!LҸ!Q<~1? +endstream +endobj +1675 0 obj << +/Type /Page +/Contents 1676 0 R +/Resources 1674 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1679 0 R +>> endobj +1677 0 obj << +/D [1675 0 R /XYZ 110.6 770.89 null] +>> endobj +1678 0 obj << +/D [1675 0 R /XYZ 91.925 210.036 null] +>> endobj +1674 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1682 0 obj << +/Length 2025 +/Filter /FlateDecode +>> +stream +xڭn6=_G^E] tE۵n1(*R&+E2)IE]8Np%R&뫄c%L \ū^~Xu/ZDo_w.^:#'$ʨHH2ln>~I'L%_ɛS0㰮_pH']*$L +Grb(oBg +`E(%+@y)n$W$El-[y _r}^֝ymv@f[aʳJIT-Wm7zNGK?5vh%Yl޿ ~wH{ٹgN N"IiMŗYRZW,[;Dֵnˍ{Ty׹ee_6SY𛿸$+z3l&o|W9Hۦ*t;#y +A3؋2xYY2h{@u_NurN(Q~嘂{y OGPz⽚ P2qO+BՊjaYgw7e^bGF q668,622]iι“LظjITV*,L8ZXvw/[^|$ "CvwYwP|`/y[=it5UA&~'D J/j VXVX΄E;4REm;؆ݦ168p73`˦X˥CY3C)sU|4t$ xH$Vu݀>pf JY:K? 9a )V[BfBAɉ{U)Xd |7ifWq#,5'M7 fgG[MY +n0/fGXk?h;?`|̎5:Gtq-oE滴(9m@ػ'3f7y=9l,xБQN\i~nfXN!{}3?BL=NOKaWBZ1OB +endstream +endobj +1681 0 obj << +/Type /Page +/Contents 1682 0 R +/Resources 1680 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1679 0 R +>> endobj +1683 0 obj << +/D [1681 0 R /XYZ 90.925 770.89 null] +>> endobj +1684 0 obj << +/D [1681 0 R /XYZ 91.925 702.044 null] +>> endobj +1685 0 obj << +/D [1681 0 R /XYZ 91.925 645.192 null] +>> endobj +1686 0 obj << +/D [1681 0 R /XYZ 91.925 514.747 null] +>> endobj +426 0 obj << +/D [1681 0 R /XYZ 91.925 470.099 null] +>> endobj +1680 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F58 1221 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1689 0 obj << +/Length 1257 +/Filter /FlateDecode +>> +stream +xڽWr6}W𑜩oɵgZ׵9C$6TT뻸I,_vB,{Ξp~4MGo.IPI)q4w>&7ŭ7vc䍃//n/E:sD&vE~dѧ/aV\9 s7u_򓑞 i ZHoAM&ߋJ4ECˢiv}g`XuBNe;U'vK~sI8c1qRT0;,kz]e7ڬ/ZVu;X(~m<@0hd1y&Fʻd&2i#.s1],#(-s,,>i?@.rʦճ*rh){gi%rH&QP7h<]e4=Va2 !,rDp& gڤA{I{2~~<$tG!>t8{T݁_2[KH(|KhY?hCD@뺓b "ꁡ2zIB^ oniƖf+{,3֊g-r%IJ.soDdXT+Quxի5x;+ݫ(_KnD:?kAo +XDF6bL|D3 &.v"<>k&F| fJj +-|-KD@,] <(Kx&LD>fBƛG !Љ{r$w|BUEQ=~۩!z$ +( +۷bś'Gd%QbV&h5Yr`~S0B_="Rqf+Gy#"~^%)b4Zx3p۝ij Ә"̍[黫\hzwzA98%a I峐pf1oL0gbJY1@#]#EYtG "mp[ qr$lB&9%;׈vSvvC5Oza}9heQe_#/TDQB^ +f[U}b+7cgY{^Mbc35iiꯑ lʰ;k*sW&ߖOb8xԙ7)o?wJBZ8S ƃsLaU~:a J( ` n +endstream +endobj +1688 0 obj << +/Type /Page +/Contents 1689 0 R +/Resources 1687 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1679 0 R +>> endobj +1690 0 obj << +/D [1688 0 R /XYZ 110.6 770.89 null] +>> endobj +430 0 obj << +/D [1688 0 R /XYZ 91.925 283.416 null] +>> endobj +1687 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1693 0 obj << +/Length 539 +/Filter /FlateDecode +>> +stream +xڽU[o0~W1H1l,RiSX{Ťe\u~R5c0 phkͮmxs-8C25!Da#{ݰ0,n`Mn_^$ږh?4SD = 9ùAhD"v 88 3{s9fofb9.9MhZfl+FuAuEhB>?o_cZ=a+ZJxwiEps9)&'0ŠfHU,M.&ͮfC*P8<-<9i|~ԕW=k)2u06,ґX]R\ 9}Ib(i+V]d~WVXrs_KhdDo|*Ts2UNi"7mbZq/T G;oT<2OJIfI8ǫꌐ>n/^e~eH֧}f O7ccp2Dx#(W +endstream +endobj +1692 0 obj << +/Type /Page +/Contents 1693 0 R +/Resources 1691 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1679 0 R +>> endobj +1694 0 obj << +/D [1692 0 R /XYZ 90.925 770.89 null] +>> endobj +1691 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1697 0 obj << +/Length 776 +/Filter /FlateDecode +>> +stream +xVKo0 W*?:` Ү6l[I8rf;_?JjÆ]D'fdN鍲uqlF"idÙ)g^B3fqr;~?ewI>MN|H!'ŲH ;h&dc<$ +B<>~\baM\*<9XGWKc2 URm=gd0'ze Yǁ=DzڏG~檴bk쵼m\-𻨗Ja{P{eu/I/#>WoJ&of31~h0,PZL>RDq*#b` R`Q[<7.LǸRGu@tA/ 8YD0jWxmrn]hZo_^X@$:0q-c.hdf6 أ {TiRPP[:;~*gӏwDTEC4țhT! ֎ AI#-3b6h4 tyRF_vؾk~UБ{qbU>U9~EI 46Eq Eu4wבׅPفz4usshUwi$`eN2I>'| +endstream +endobj +1696 0 obj << +/Type /Page +/Contents 1697 0 R +/Resources 1695 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1679 0 R +>> endobj +1698 0 obj << +/D [1696 0 R /XYZ 110.6 770.89 null] +>> endobj +1695 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1701 0 obj << +/Length 1074 +/Filter /FlateDecode +>> +stream +xVKs6Wp<9P3 )֭ggm@ĆXX@&U9M^.a:߅4b/[{( Quf޿y}6[iOw7ӏٛ26!&Khzn#J%{a oon(#E q&Έ t>B˶wy krYj԰J7BqtS]*"$) L'<ωrCyadIM-5 +SQ`0A4 `e + O E[¿|%z dW`J`yדmE_k+Iꯘɖu\ݼJe〵rZ*TEvMKlEl+M <'.-P6nBY[HYٳdٲRc ~u'w Sg3% +@Rrw됇H!2g̩(@Y?}?PRuR2u U|Wҹ1e_X(<>]l'M_եީdZHf,L#]!h.SU"ɳxlm+ +V Q*Ĵ+Q]y=jLE@S/R:N;Z<^ t@Swv ӹ</Nլz#@u ;.TET!Jƹ|0y}[1,b,k tŭ*g?UyY9rrԑA!MzT<N͑w.6ќ&0!;HA + c_OU[LJ)5ͩF8u-fQb}#9*XּC/=2#Ϟr׮>?Pyꮩj3MjHlf[XѢo,JCX!x9ȟoxKs鯧٘+Onw*lRo'_['bR&QI8B8RA(uj!n +endstream +endobj +1700 0 obj << +/Type /Page +/Contents 1701 0 R +/Resources 1699 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1679 0 R +>> endobj +1702 0 obj << +/D [1700 0 R /XYZ 90.925 770.89 null] +>> endobj +434 0 obj << +/D [1700 0 R /XYZ 91.925 694.121 null] +>> endobj +1699 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F35 934 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1705 0 obj << +/Length 918 +/Filter /FlateDecode +>> +stream +xVK6 W̊!%QMf5m'j&ۚJ[ bJ9@> 1#Zlœ~D"^H- *TSr\~.yt=5]"dΫ?n޿]~.nŗGpqyĊ|AbqFhMeAϧP;\O}!;U%>(X!c΋*y]󋆅\4a>GoBZˏL(nsӝ e:D],u.Vڷ_Y~$Xs'q'/SBhrk$԰@Qjdq^N^:b2.cH6CMo!@?/k|Ԉ$yτ.)[؁z6 /ΣXd16lz@0:2?6s45 . +vo# VV-[T4fe Pi4B&2a%{fHA#u1lp._)؂2w"gf ޺,4^rtq簇r&XQ=f0)|d+!)$ZiRkyv?L̞ ư+oR,8gLqQnV0S"k~`,Y푽Omh7)ZszzLξ)/szfIggFn0KHi8 ?~> endobj +1706 0 obj << +/D [1704 0 R /XYZ 110.6 770.89 null] +>> endobj +1707 0 obj << +/D [1704 0 R /XYZ 91.925 161.805 null] +>> endobj +1708 0 obj << +/D [1704 0 R /XYZ 91.925 129.924 null] +>> endobj +1703 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1712 0 obj << +/Length 447 +/Filter /FlateDecode +>> +stream +x]RMs0+(fjumMCMyr l\>궿 I.۷oE8}9>~ 7YA^CDW +)$ +ٖ!}===/cˣ_ MFp(Js-]Aȥeev&L 0\jz̔'jBd5FɚS15_r);> endobj +1713 0 obj << +/D [1711 0 R /XYZ 90.925 770.89 null] +>> endobj +1714 0 obj << +/D [1711 0 R /XYZ 91.925 733.028 null] +>> endobj +1710 0 obj << +/Font << /F39 979 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1718 0 obj << +/Length 2106 +/Filter /FlateDecode +>> +stream +xڭYKܸϯ!5fKp$N2@=h$[k;;EuKm`M]}x oo^Hrf4} j̈́m}ntn/ OS%i"F,KFהN+ھgfJ[ZjS:1 yȹlj:((Ji9i6Z}Y罣ժ7;aG~ _NNW/]3u{+@7r7tgPN-M:nAfZ`4)=Ɛ3tpMNrP8\Qэv9mQ壏 p_:o;׏E :vp?e@ zI# +dkv{*=ta~J1nI4n c^|A5o,ʖƦ$+k)m?cY^MkZձsLe'&QDr,AI: !d&*l{Y5׃MYL֏ǶpkXa\fɴj]; τ +D9  +[;4l\)G?`Y@ +8bVD8IvP3r K?niP nd8my"KmSR>aOHi ΧYI;w⭫!D#97AVS׵Hmxy?k yA9FJ`onwteʫ?KׁuTHK7:~qifa&܄,HgoԤ_h+W!4}Q~D|(:pw59=vPǐ`Dc`@'nK_0=a +|puw7P^mS?.y-;4K0OCUW7IAP@:= pK WOC.W^e @,wE& 8/Ep,ɿ?w\$ PՈUd!U q +%"K^e8o{ڞ*j>2Hre 7omI1ab0mVT k@},Tؿ4˰L/%ؒހ?`5Ecv$AuՄйhE}Wct͋@ Z{?V$y,@]WpQMSK.<nh,STs'g=K.8^#",L>~9jR4!< ;)vxf!kq^5Q-EW Gꂇm ;5y~46.xy8CsilC ڄvpg+U oW 2,bzL7#qȠa >|ʲ}{no~"a<1$*7~Q +4zGNUTG "OLi8(15m-gwk1t/0.KJ 3=p 5~罁5'f{,0KJOA4E)H+>J2oaZ@WĠ!e#lHLMZ@Ǟ55 ՈM>` + 6KR06:+Ԧ=b _qSj_qZ@R%2`__\R r9T+NL2`aɦJjg4ek60H“ELA Ŕ/t%9U^?v,Lj_I@yfAFmE#=e Do,cF˭T:<rSɚ%[\!XƍL1P`ڒ )vP *ID| ?0IHF£R+hZAgUȨJ,f7K -심'Mp/Y +YGjx>qxLkkW+ ;>4ݵP]} ʜmdϞz?p):qL~<+ +endstream +endobj +1717 0 obj << +/Type /Page +/Contents 1718 0 R +/Resources 1716 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1709 0 R +/Annots [ 1715 0 R ] +>> endobj +1715 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [306.996 450.771 312.974 463.264] +/A << /S /GoTo /D (Hfootnote.4) >> +>> endobj +1719 0 obj << +/D [1717 0 R /XYZ 110.6 770.89 null] +>> endobj +438 0 obj << +/D [1717 0 R /XYZ 91.925 733.028 null] +>> endobj +442 0 obj << +/D [1717 0 R /XYZ 91.925 550.016 null] +>> endobj +1720 0 obj << +/D [1717 0 R /XYZ 91.925 303.324 null] +>> endobj +1721 0 obj << +/D [1717 0 R /XYZ 91.925 273.501 null] +>> endobj +1722 0 obj << +/D [1717 0 R /XYZ 106.271 125.066 null] +>> endobj +1716 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F50 1198 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1725 0 obj << +/Length 2895 +/Filter /FlateDecode +>> +stream +xڵ\IsFW(Ur&J2cf*"! THȎ$ADl}“ξ9{Q$`Mne$6$ +fHnfo~Oiy`cn~p_?}槳?6H`Aǜ2y2w?%DKŸx?Oyk"_KBpN4LW< kK6v<-=D.7V9ʭ6.lQ@0ΟuCD0DX%b"0!ԲBrqy%'s xuBCb0Nn!e<(NgJ(˙q.%$ !J'ƮH$+VNʦլ/:y{MϜl8) f(Q;>0AXz +{/ C<L(SR0]q ByzȀj Y0>Mދ)J'MI!z@t}FP3A QB' \1oJ$; +N,C\E\ps12 08[Q:RPևq!1*-O .Ow ÛzsZI9jO `#2N# +!0$s2 x6jM4<:?My=?lPy7B:\WJݙY1A Sa }.cx '_]/NC + g&@hiYeθ!G +d޲e7 >ힱȬ>a9r΍R2GSH +Ibm߃8XQNJNZ'A($t0olm5Aot"|LU{Q@3 eE?abr N24EĞщRQ APG8wql42DRtp4#F B+dd$Zff)[]L4?oFG}C3Ũd Xɒn"rG)Ls$;s(HϤmD 'J Jxy_XEGRʢ[#qπϩzAVB/y6Oi v_K^t5 3,lXZBi)YAԣ +gT)Sd4dWmyaA8]'iwa%%ƍ钒ϲE8#0|35e&o{vR(Υ-'hoOYϦaIx>Ѯ9j6w}whp|nBv@aN pDp%P=z MY|ڗMm3NJ"lEV}yيO*?O]BNKW̚(O@8;6A9<#kL$OHt!GARFeMli{s2[S2JIDL: j 7Kqm4(ά?=ߢC0퉑WFM\"M%qRl "BtēMED*ԔBH)P'e}C!wubyoD;7.((uyB@Lx?wס\XoP:j͸!,Q8r(GO{oZ*{^LK5}Ya|d:UhX51 +j#M%QMJ,@sQf\RQ R>54=#ZmTK0Ntz'}*-O:ʶSnuH* T`|JUŷCS~".5d!)츀<wQQhX3F +TxjTAx!C Qt> {NegܛCԮ_jA?ۊ +Ֆ6=RD#B@ctexTըF W R_Eu xel +wqIFCJ[d**lM[7Ǭz-VY5Cy>-w tGtUzlZf74K|[-X[_YޯǷG;7AY@ƜK}(3]]|"]LdSu4kvI9Ay~hΚJd$u19P}zՖVgtX۬YT6z+dvՎUYך[."m,WzgD?"G='-"-I?hS*Wz :,y(FM)K*Sʨ:*NotZ/4k5T lgZw#f[!me`.:XxԑNVBW%vEϦ_|yFvDҍXKeBն} +d9/|qMoOZR{*|&j3-Vo{GH[λ2=,rߪجRZz["V2Io)>Y r99iɏ u0 L}lG-!K/gtDܧv'uV\8.ΟH$I+tNӻ|-Ohw# ] )Fww]~+}"(kY{5HQ?ڗ<=73!D͘ +endstream +endobj +1724 0 obj << +/Type /Page +/Contents 1725 0 R +/Resources 1723 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1709 0 R +>> endobj +1726 0 obj << +/D [1724 0 R /XYZ 90.925 770.89 null] +>> endobj +1723 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F14 1207 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1729 0 obj << +/Length 1439 +/Filter /FlateDecode +>> +stream +xڕWKs6Wj&B@!m4ibs89@$$aB +ֿ JDb.[y{?z^ S/%i/[zaH4 H/+;_xbd<"f~h~0@K؛S2 c/ߌSG0yVrE,$4\z#zd94}2h +}7AE$p6 ck)Fl𹭛F.J\]#ي\.w‘w/APR;Vrw{#6 bb]CсWZmU XP,8Grlؗck8@\(vPpڅcr(e,g;N9 oeQ70[|axxhk B %6 a-5qwFf .2C"%Pl-z1 dA&l80%NhBfC*{9(1^I,f]Y?4@mOCn vf^QO  ߸\vx.n5MUY+R!IYWŐ-=e:1d-l^(cYrUўQ$;bV-S ǖ>kHH9 }Fi؃b4 @q Yw |QLv02GA#eV#WNj`YH^E,Iirgs$`R9>_\I^i253e^;UI|࠷f%i'v=6mhyq%o:绮4?"`uae "F 3fM^J z:b 3j7Bq]G3%$r4,8ty9̂~[`ixObxm~ Ҕ~ eh~뀁#{Iu; +pס~6n[}wϓtѻ:mR|[׹QB|6vBvP6?JOc?iw ǫa=A܇4(ans<'OTߋKgl^ lNnߓe\v?`A'>/]mXCF•x!VБZFV@p^M[j᲋W+>J>[ e:&N)`+/ L +endstream +endobj +1728 0 obj << +/Type /Page +/Contents 1729 0 R +/Resources 1727 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1709 0 R +>> endobj +1730 0 obj << +/D [1728 0 R /XYZ 110.6 770.89 null] +>> endobj +446 0 obj << +/D [1728 0 R /XYZ 91.925 427.922 null] +>> endobj +1727 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1733 0 obj << +/Length 742 +/Filter /FlateDecode +>> +stream +xVMs0W3"`HbZ2Iϴ3 ^gL!ɿlI`zAJzo? h]r]t#6qqQ1mȏcMi퐎k!zW?ݙyW35kڨoq߲QgElR\iab>E/TA +HePplhx\JyѮ=Y o_m0bWli -v:&ͅWGo u&5ewoއ;>  >4S +gu8ыY͸ۣ8&R*_6'BLYMi5KBBf<|ITɖ$Fb2tJnC +KkWa*3zuk=Np=2r ՛ :Θ4$DfYllu$[Dl2?Q~-+R .h!%e'\$Pv 8_*B|g+U1g󗿭5>R8 LTq0cQSVX-1Q'47Q*GW]x ՛@6i4ٿ˶peF`+VPKQx!#x[*6zSxvhvҨ;#HBâwr8L/b:29? UO|FS4Z5I^-. yðj:_?9ܢ +endstream +endobj +1732 0 obj << +/Type /Page +/Contents 1733 0 R +/Resources 1731 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1709 0 R +>> endobj +1734 0 obj << +/D [1732 0 R /XYZ 90.925 770.89 null] +>> endobj +1731 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1737 0 obj << +/Length 302 +/Filter /FlateDecode +>> +stream +xmQn0+]?SBҖCJ%) 7Aӎ=ј`Oѱ\Zh0AjXH G-8Q"NbhCQA6E+x,sƀhTJ Oʆph_@ $U=󐊟<< +>oX!fvw6_!K^$<(kVU]M.΋m k-Pa}@Sױ!w*ٺnf_wӒ{l?j gW y +endstream +endobj +1736 0 obj << +/Type /Page +/Contents 1737 0 R +/Resources 1735 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1739 0 R +>> endobj +1738 0 obj << +/D [1736 0 R /XYZ 110.6 770.89 null] +>> endobj +1735 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1742 0 obj << +/Length 2593 +/Filter /FlateDecode +>> +stream +xڭZwF(7b=$ٝ˾}[Ј ^_u5dEj}D~m#%b甍nQ& #gL,nw/CW4덲b%2'i"i6VYǼmy~^xЬe*uh46Nl|IF +!V(~BUeWTYararrʆv {6xpWc[y]={kiWmWVu3f=d;2,IFJBֲT)ʮҿk +MV~ϡ`@O5fW0l(^oV=}xz2X~YK +ʪ-n-Wm+*, |D#MJ$K +/=K,@W^zɌLP>6MQu mÄdKQ=yp3=4teAӠYOBf`cvI\a}_Zo&xțJ{`8U&CG7,!Ƃ`Cq{hV j[],uoE?7=?0ag{9Yq=4E a]q۟ή)z̲E(`]ze(p(gW:)U:{wh)vYe#Roj: (ZZ-(մ,ZfWv ㏱K\(8AD %ǭw싲BeuE[EՊ%BeNŊ>|ŋ@VNEtl"&2IBca$E7s +7C]V2nc%=orl蠞V4 [_t:jE-4^Nm7{icޜTϪc-}A]M'|M7P㶫]q:)p_w?${kͨa°>4Y]ZƝfC'`E0DZ<m͖MDS nծoc[rW0i'Y gRMԓL-7=Â+Ss$R&We3ʀnے/5y&jMw`خh8V K|>T< Gg7aȠ:h|U`Clx iи'=݂aσpςX0j)}~ Wh[әk ͖ tcGw ٰ p~Sɻc1/EC?]HlƢi;[3҈ +⸟ vzTENǾV8bHh{~)tXS{6MR#}ů.s:402͎])Z@f#ψw^XQlL tw0OQ9I4\.R=72gv؀@ 8X7Iř$`fq-|c6|]l4.> endobj +1743 0 obj << +/D [1741 0 R /XYZ 90.925 770.89 null] +>> endobj +450 0 obj << +/D [1741 0 R /XYZ 91.925 733.028 null] +>> endobj +454 0 obj << +/D [1741 0 R /XYZ 91.925 545.281 null] +>> endobj +1740 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F2 1201 0 R /F50 1198 0 R /F31 899 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1746 0 obj << +/Length 1617 +/Filter /FlateDecode +>> +stream +xXKs6WZ$Hѝ\i$$,|($eX"ic2qX`}+;N~YN<"'bQrx\2N&],λӷܕ|*8egN//w)go. هri"@'w  eBO:I>y;k{pE FKz{>Йs9m»}m $؛}4iYG4US;/*-sɓU7'=Oh P*J =` U3g*`ݲ$=P3)-u 쎄 u\ gA-к9NH1)-L/Ăylu,-XX\9wArFBF`|'&PsGMc8gbaU&Y\c\.Zjl%D[J%e~¿fOL 0{.166*.jC(Ć$@3ps.7$_2F*1i8.Ҭ2KcGw=ylc=NOHAA* ҠbHP0Wz}|a&q$؏q4mHI:ZJx`BܲPf})m pS375U;&MlE{t? Y.&FF312bƔMCfԐ^6g$}G8hfxDKvC?&mPo95{~mfI_/tiS +U_SW#nIcX@DPY6عj}*@63Heuk]UFel UMǥ +Zp$#,mRUnO ۳|~Ͽ")&SĶOQDe=! #'ʙ+7>sR>zrgXde@VB~L(Ϧ*sچ}{l[*\Lonw|C0YJvj@ +jMU |ӭ*[7bo0Vj4oL4tj[TV?ƐoA7F魏)>UqEi cJAuZtUB7+} 0v/a yR+ƮGUU u ƴ;y[-kxF*W Hk}nl)ەVi DXwVke*u_kvozc +a),j+<8^d9=Ϝx:/MiZZuqTߘ{::jk> oyS_Dط!i4uw{o[qϸ/M(,DЛsn +endstream +endobj +1745 0 obj << +/Type /Page +/Contents 1746 0 R +/Resources 1744 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1739 0 R +>> endobj +1747 0 obj << +/D [1745 0 R /XYZ 110.6 770.89 null] +>> endobj +458 0 obj << +/D [1745 0 R /XYZ 91.925 541.667 null] +>> endobj +1744 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F35 934 0 R /F29 898 0 R /F14 1207 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1750 0 obj << +/Length 1321 +/Filter /FlateDecode +>> +stream +xXKs6WjƢHgzN&Ӹ2{JrHBˇJPu)Su{Xb}D[X?O%ȉ7ňx$u|Zqf}ϯNtĦęOonH,.ο, }ubq3\ē?'dZu"׷ܙ3JE֝,,eaйu3uB}zWoU_>l:0.ZJzJCU~ }|mC8ok,µ$vn7k2) KFpJb4O` `vaݚJ)cHi͓F-%+^jQAˎXUo|mىֿǗyX8a oR |ziRj)zim%7MeNoҜ'c+c5ʪʍ:މ<7S`MD>yGAG#'\$W{.j^W!/!`"4zghK^`š@^4©iS| +qt<RLOaA料o+.3~H:7*ǐ.3}6֋WpE#`w5]pҔK DxBܹuҳ7u{eTPULG)1  P skIH.i%r\S7OJپa%Sh,y*iM Dz᷼1 Iw Dy=՞{AcL5 z6@Te~F#қ2)ҽt;}Dr9=8{DF/a-7<A bBZo]ּMRG=:YgUSCM1n 4s<+μ9x]5d[4x-@ci'mMXiG_@e\]K_UaǘjNO{[[?<?L+FݮlǞP$Hso*;Yn諂Q]묄<8T{:YrѶnxSjf2 Z#CB.0wy6guXo\**L) f{V,9;C*6{-SΧzE%BM*OUU#*?n}5̞T%yV䷢<,X'~3ztX 5𧪽_& +#Fgrт?#q3x:ʂ +endstream +endobj +1749 0 obj << +/Type /Page +/Contents 1750 0 R +/Resources 1748 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1739 0 R +>> endobj +1751 0 obj << +/D [1749 0 R /XYZ 90.925 770.89 null] +>> endobj +462 0 obj << +/D [1749 0 R /XYZ 91.925 733.028 null] +>> endobj +1748 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F14 1207 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1754 0 obj << +/Length 1450 +/Filter /FlateDecode +>> +stream +xڭWKs6 С4fcLc$uݞR"QJ$]i-w<Ӟ|zw~[Y<$⑷y$Gy{_\\.xH}F,|ƽ?^!q{yqs7.oˏ׋˂c^HC/cGHV7Y{[/\Љݡ"F" +n05X1J{Sȶ&ƠW|5xD{gSQ H[TF-T3_vN+m;Y+Rge9CBV{^VZKmB'Muo<30"tXyB}rXA":έ̟2n-YIV:_#=1 l̂]9RNaCDZˮPvns H]-2s(DbVr׮(`vR\tKoLr>" qb҄#$ `\9$b9AHSW87Ezfp:` +pJ]K՜UObí(@T0`G "B* 8\CAb0Ci`VLX\$vWβ/8 YNݖM\NNrsߪLþV|k9 04F2v + ?А:SdsOq~tN멘ܘ80ԅ=e!gRكrN?ԙpb?.=[ й\z9^G)v JB nI +`ĒlU/ V|8YJAQL zC5D0!]oeZkE,Qx(\c7^BMo+pupѱ^lyw㋑>6l8.F{16֎BG+$ N/Ɋpe0دe#/}QA}ڕ۲*eAs Y$cmG]$cE=%lp(Zhx<8>~ݿM}(p5tQ1>@)o#Jq0C:f@olp4n{^]_:v.m;"X6\˴i)qR{Nqڸ1)j\4F;+)c&!zd: T}%k|SkCh0)M^]Yyj1:Vޕ$N +4!D/?_ >z +endstream +endobj +1753 0 obj << +/Type /Page +/Contents 1754 0 R +/Resources 1752 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1739 0 R +>> endobj +1755 0 obj << +/D [1753 0 R /XYZ 110.6 770.89 null] +>> endobj +466 0 obj << +/D [1753 0 R /XYZ 91.925 733.028 null] +>> endobj +470 0 obj << +/D [1753 0 R /XYZ 91.925 405.168 null] +>> endobj +1752 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1758 0 obj << +/Length 720 +/Filter /FlateDecode +>> +stream +xڽUMs@ W`6LZRbˤL{6qМ$$Y$= V/ڹ\rc6rd FbKѢ;ݸY[K -tףloAMY_No&yν&KśQPX<0, ]! gazwqh>-=&MH b&oE`_b.0Y>IF}Z,/A1XO.z;AU 4G9("ӭC8(qF@M&Vohyqb͚U9X$̘c])^*G)@=r s ,+mͯ<Nܓ{êZULfwzzVewןGbr ՙ +VȪʀΣH617aȹ'MJN^Xe?kK}zm}{t@eD,`oW`5$c MP$ }x-> endobj +1759 0 obj << +/D [1757 0 R /XYZ 90.925 770.89 null] +>> endobj +1756 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1762 0 obj << +/Length 1090 +/Filter /FlateDecode +>> +stream +xڍVQs6 ~C{o5KRle/KeMg4Ljeѓe^%Gi#  =xmb]{1#ypByH0%Xywj6I}p"_LsM?Jv뫛W~~p=p& K՘=V,'ޣz Bso>cqw7D3)pORȍv G9 g?[nbR?dŋn/vY;*Z'-V̊RIF*kЉuu~#T)nLԙ){F}WŊw]_L8] GzIHvęLd׏X +%SO=07a- 緘D, O(__mJ6]bT({8\V:Iu6'͋i$g Q$䑒ms#2y}RrкKo <=>ojk}~ꩂJɫ>̻vab?$o=3]sW@Im;ٛE׈AWRd][^x9 RKb9'cðy/?g՛GOGY Z @z(o@ؕLXԎ}VjA%hB W =pQ(ჩEдM!m +S.aCJ)kT~Ix2KHѴ%  +QDڜ}Z>r8Bc0&65Zƅ V%Y('tc +endstream +endobj +1761 0 obj << +/Type /Page +/Contents 1762 0 R +/Resources 1760 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1764 0 R +>> endobj +1763 0 obj << +/D [1761 0 R /XYZ 110.6 770.89 null] +>> endobj +1760 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1767 0 obj << +/Length 1548 +/Filter /FlateDecode +>> +stream +xڭˎ6_C2P3$ER "ҤV+8E3Rw!5]ģ_n_<{,dmwQ!XPU!~kZ<bi+]Slo^:MXQlƛ?Ligoqc"hƉP,Q2"ˉLւsyWGwt[Q2eTEj"> fgTa mǶ=,8ZyG{\x<ִtf%n``rʠo$~?TDuwl"no{[:An<;ι@) .`qǚN 3=Ժ!D "_юwa%Aė1W˾=ԍ= ;Ssfu2q +:б;d`c{y%%ѵ=KA4??&~VM|2&<ēd=(,m_ysB{ǝm mm w= p-z0.,hJ9%+i$sU#8pfI h;q0#Dd" SM F"{wlo|V*G8뮺.W%WuqD,!~:ng<#e<\s0-wkkCᏜsg[ssEZZr\ٰ vp L8ǎ+f1yA 5-Xڹ~XbV,6*BsVa*X*-pp82[mk@'\lCCK# a'k$AFI/cnwO0[sZx},0e\]`n,,tI'`/oq!|4'hqN·fέ^8#8tvV=SXektq~IO"s*!p;"ȍ[ҷu]&pO9+>Νp{S;D7W9krq:h y0) !g^> endobj +1768 0 obj << +/D [1766 0 R /XYZ 90.925 770.89 null] +>> endobj +474 0 obj << +/D [1766 0 R /XYZ 91.925 733.028 null] +>> endobj +478 0 obj << +/D [1766 0 R /XYZ 91.925 545.281 null] +>> endobj +482 0 obj << +/D [1766 0 R /XYZ 91.925 192.822 null] +>> endobj +1765 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1771 0 obj << +/Length 4750 +/Filter /FlateDecode +>> +stream +xڵ]KsW*V˛dk+Į!JfJ"ލ}G`ދE~7B,^[NŻ -E#cXx'Wwo~}N\߽y?:Wo_>?Wo߾y{w߽x_H&re]xbu[|B4_ ^-޾ Qo:5 lv 9AhNO_(`w'kE~פi恷Z]+qu&.1AF?C1ZL@5ʨA8y>\ LA(M Lf lbDДQ1\h b34"FHb(gƀq򝉀R.G{-n{nJ .PZ5ے CFZ.Bd B469d,HHLL Y$L# h9Oa^pB{oEFZkc|To9daw}Zo>" pn-,%R\T5MlB yk]RcFgDm`Ah"z>4_J4.nx/,n4FCٓ/ G85yr| ~!D[ hnP\ [a b +ʰr茉P@Ƴ +hH ’ 3m˥F#q S@(FD==huc=Bc |bi6Iif@g3LfZˑ AK k apA0Bm ~H Pš HYlIou K"'6DZt`"2T$MCXdͪBR +}AT~ͰbHW+օTB#JzP'cLSc8R"B +,غ5Vk: Cd@$Ęǂ@Gމ3`&8C;؈K& bmz b=ndHh$i髴3{>ap*Q1<9v#%B_S*t75a=A H̓7ZBW$e°HզbFՂlf9^圞IńHM__"Nk=\]W޶nfxKdC )j* "Y| u-'"^IՔ@K.bcEp :Q& :!Q鴺QwT۴BHK,ڞ~>s_8{tEZK+NsZk Zk ZkF +v@$&(?ב@$x M2QPF^U:7@Lu1j.[^j2b31FV?6:v!<8h "y̹XzqNY/VtԲ=Oxnw-2ePyퟞ5jzgCHTOd֣'|yőBT؟$(dDGH/PZ2c K)5 +JN&5oEB&TLʃV֥ٓ9ͰxzRl~*{sAG!hd*˜T$f$iKСE!AF׭?QGTt +@9kZa$i%-:7D=;Lu}90ڍE;Ɠ$DLN2'A(Xe㩈a(1ۭOUimN]DQ4Zj RT[sG[s4zY5g<5C`]:G- Xe[$!"4#oͥsx2B"@ , VW\P"} L'AЙrg/+KO{DJTjsMk=Rz;N!eg6yHǚ9Ӳ?bjlj177# Bϟ9I{:$*_A`._b1o"$ +b|҆3j`\7HDcfN*N:4Ǖal5dt 閖DTIA=>G|ջ"}H +"pkv굋D`IWnkU¦9#=MݙZ) \0:8&G ^eV\p N֖@S%($%D@wي#WFa5o"5I$v,(' Y ?B9gEI0 T̥~@ ZZ +2,rԫy"Y4h?>Tx@ fXjtbmr#GhjՑN@R\&`w֊*D9v~޵2= +B[gqH=7 yXjhiFi 6:B}JɠQAK][DH9N@g)҃ Og4̃՜lrס.o8Q,m;D:[YN%9eSeSeʌt1PAG(^3Q䰃ATo&tǑe34D7iLt@wX iMA36 ȹ2)=tQfAtg&TB8|g 4Td8V/9.._A:V| դ?vh/[IK$ݱnI4)ά2- 16Z kA05Z/ig  ]kj<.Q0e3)*uWZ'i\~)FP>Cmȝ'^<:SV)SvW} + dnoEx_OQA=VM~͛5]؛MKTwrPK R4%S_Ԧ J:z^O*L礇lðk&H3й2˚ 1Reh ClJrB5L~K FunN6K](UB$ j]K FDfg̈́'L&:%ߐqD0mSj +N +⟧y3 k"#S&[]6k ʧimXprLG^UK՗Zh9|ķFU1i ؐfhQ$]n m&g^Ϧ*e҇Khsq<\2)py$vĮ{{֫B!mC'BO +fRoA椶&~l*-Jm9]j˙I( tE¨tk{QO[20Â"*F(_kzL3xЂ pt|"5][5#uuooùٯ}JvK)hmW1>"Q)EɴmT?;s^~b?_^[5xt]dvͷK@{S{Df,O{w}B?پWWYQs }wݗkg% 1:BCf^r= >BV"r;*އݖdK^=ӿ.!퇡Nc@q/grpwl 3"ۙ_nqP?ǖ߶#~/ogB ~sR*̃o[C_Aҥ(=] %wIX4Ձ2x}97GϿu%7o󼉤%8Qc~W~ӓטEZLۦi T+  W +endstream +endobj +1770 0 obj << +/Type /Page +/Contents 1771 0 R +/Resources 1769 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1764 0 R +>> endobj +1772 0 obj << +/D [1770 0 R /XYZ 110.6 770.89 null] +>> endobj +1769 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F50 1198 0 R /F31 899 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1775 0 obj << +/Length 2681 +/Filter /FlateDecode +>> +stream +xڝKs6_hg$R/gzp\݅O4pήӖgۿnޝ\ܜ}mߤ&c7&;as`v72'$N)ҟPb($mխ"s^<_ p R +_(CMoX~ #|Oi߮N|¼xN +%K);){_Wo^FEzUgMWbz, u$UnV jnߍv~d^ӷպz @:òR?z^P]QWc 5~S'/ rUGCH{/&L߼ 'T $za?c0dx,* `7&*#LLin,nvuwWcP@e\Q-sjw~(^Hz93`xt4ߗEFш\uprXfM+0%](o!(ΠLtj>ktMxnL!0=>+ /X/oeŝ%'EBtYNO-AhSE& ^Q 1M/R@}pJ6ц,i#r`rq,"`c8qۗ m{9`|'|; l50bLg$nV:VQ2l|[BH-O5P/C(L"P! F$5@w$j4=0Ep`6VU y]itwMx~zE\xHD`&}w&tE TΙz] !\9XN_12<.RgtPl[N"k5}YN1vLS. +;&p8J!c> $!텱!).ifJLJaYjYTE=ؿ{*;p+WרHNJb+  +R jFYRgi/6z ԑB> D1:):@+rFՀq@Nh.gAmTCn8FN. 𹻢:!;v$O}RѲ~Ĉ Iة-p+#]@1ۚ$(Dh7 Ut8V^̀ fEXF f%J%\U2ȶ$y cX( +pvpՈv7=IgkGH+3U8׍GZVAcFZ[-X$POt|s""R="@ꈋGe`0ZgouAXQU]Bᇮw1 {c+^ N$ }%xJ#lx`ya:g.14Kh*Ԑ/hFC5v4i9*VX +oF@~E~adIdyD)@Y7 $M"M[WH^;0&whrZƩs e'8U28{hK#6v&$ZQ]FxӘ &>dH,`,Fع:vE^`e)a_~\\nV ȝ +7baq|'=}t@#ܟMy`[I8,jdD;/]u0\ %,*q"|I9fB5p {t4UVq#-Q IԷj_2FيK=VѴ5i)@[Еn:Z)@Xu4kcvv-Y .)]!!. fcBlwy%m,NnODO#$+!iy "cuC'4`hD]~0F)swvϾoٞ Y9*B;NCYmLqJ.Ę#{|Bx!舖T\~obČqԥx;NhG%VݢhNSFJv-M-'}= 0֚4-7kx@ߏd89?DY +endstream +endobj +1774 0 obj << +/Type /Page +/Contents 1775 0 R +/Resources 1773 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1764 0 R +>> endobj +1776 0 obj << +/D [1774 0 R /XYZ 90.925 770.89 null] +>> endobj +486 0 obj << +/D [1774 0 R /XYZ 91.925 181.491 null] +>> endobj +1773 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1779 0 obj << +/Length 1065 +/Filter /FlateDecode +>> +stream +xڭVMs6W3 ")ړQZqV@UweBr`}֡Ώw qD~6N(aԉ#FB9}\-~~H]ƈ7#>_Ww/wg?̖-VG Q9 #:q8}LJj &/#;A"N4%nMqTuz-HTJBPA;7E4rՎ,ʽ(xm4v^Mtk"m|`IqgJx~>y,txΜ3hL>$Iz7Sw=Bx# # +"Y + *b.@m5BM \D#Լygt'b%qN}%gB5F1jިZdgUڨNF9-*?iH٧0Fג]ed{H!ʹ~p(cƘ̇슭,TH):T\Tk5ʚO> endobj +1780 0 obj << +/D [1778 0 R /XYZ 110.6 770.89 null] +>> endobj +1777 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1783 0 obj << +/Length 1265 +/Filter /FlateDecode +>> +stream +xڝWYoF~ׯCSك ?8VBkM$hfvof)8yz#'!ICgr%9~_2x@] B~x}w3[zO^goQez>O?-&7ɟިÜND$OYΡD}Y:> +™O~~>Elm a嶐Tqe4jWe )un,gEڶ$r[6R`# hvjE].:,"%IgSƴ$XBEi }_\e6F,VGߊQR_Ke&<ķ3!L?J`~Jj1S6"3mr,E(6Is@-](rA?zwo7B 73Zdl5zޚFf`c +gK8וFw8<[ ca%[5,??RRj}}Qɟe>zѾDv9hLJ6q2>W}w3wO1Q~GWHZu헡к"Fۣcfv)Cn.`!+>@BZ:؉@ITK'۪UiaF0$~`ʿX/y8?:ѡ +›!f6Ǒ~GN uTոa״enPPG+c hwm(ij>Gb'(y/p1c52}a3Ń{[a)vrcdzhSO!VKg]oG)զ^"_VV^U"F76]K| p]B}Ǟ)fu %!BBK;6?"1gVBD v븠!?jT-H0z +YʲnH ,ma MAҐ͒ @N(8|$V+FȞԠBcDa-F:ׁʇ3!QbQP%n Sz=< e bè6eA}NFq]Iu p3oͫW\""UUڭ FK>Re4l=hhJZC цvQ0i&2,Dfci;Dx# b"hg!晡p>\3Ӫvq|$#_ۿSP2G. my{%>B}-86w̿ +u +endstream +endobj +1782 0 obj << +/Type /Page +/Contents 1783 0 R +/Resources 1781 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1764 0 R +>> endobj +1784 0 obj << +/D [1782 0 R /XYZ 90.925 770.89 null] +>> endobj +490 0 obj << +/D [1782 0 R /XYZ 91.925 312.882 null] +>> endobj +1785 0 obj << +/D [1782 0 R /XYZ 91.925 242.382 null] +>> endobj +1786 0 obj << +/D [1782 0 R /XYZ 91.925 198.677 null] +>> endobj +1781 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1789 0 obj << +/Length 3402 +/Filter /FlateDecode +>> +stream +xڭ[Ks6ϯPnR'$dvfwRdvJUGL(K8~@I)["t7`Ͼﯾz3|&L ΄w3 f]fZ\HBŅ_|Zx9{w?|W^6>3/ffeVrlg8S{\ϴT+q5|W|b-(\1iBf"o,.2ʦ0zwEn`]yԟ/{X{=?qXnʮ̫-C8^?oJ+,B*_Xʷ?b g&4\넭h B_2m tכ.7JYkH>8?:Կ.zݗUGM519-`|ə[2#^s~^gm~\ժW +bnxu 2$J\ -I,6]?Jzeq jfh6e|\])iƄx/uYM̜|C?m"9XQ #[vu O,ۮ^Q%`T%øJHکN`:}x}WU$j#1*m +4rvfYW7xE|oiZMˍknr* YǛEOcMLҲ1)L<~㝀Ml !hrJ|io껊+NA87,[*htTfy y'hmG[-~ȈG +*vĎS)w 0#%9fb#Ş^򦈃.岾t-8jlgJzS=$tXc4!1ڒ2~`TM#%7W,DZ 4J ,9o#v|j^U*Ⱦ?כv|&4!4͘^'Mߦ*d4uUӨDIkq-ZA=0nIH~"HְP$됀ӛТ=̃1b'E {0gBm=ħf}L-3KwӼi_oIJaҸyɐ'](/o8D5͗8}퀆6*,(6u4{p٦VĞbEȅLp7 +(πDuSMm(I7p,)Hۡt'^/6X#]*0(7rA~+ry{hWL𒯐[޾GHH>J--ҝa&P_U ; ȶl0;q\p4y~ZEF0n =u`ut*bgtߎ:@Gۗx( ci&T:ke`L$g<o'kqÆe+v˕hL)┞zT " TB˧;OG?e vn7*L3 2WDw6d&WEH .sT :J6c*F6Fa +z?*ǎTI +. 7zaUF85Rd/ї7`u؎!rgbJ]U/H~L@P 8si2Th>a)~Q+#Coy>"s'IЊQ/ +F<MOݒr"PBX!2HC#d{U FG{jux.ZOpts0TIaư#:{_' +C\_ȹ!]EU8Af P]>@RC } K0C`ƞrL wBzL'JOQ ̚)P +QקCX54e'a ]v'@Ĕ6S?h\? xaM4}?/6ClF4'6r5 S)zȥ>-Y$'K4۲ھ:@U7%cFGvp0$6ծoK=?{e*R؉tļpV˩Z\h3,m*ZmwUEOm OvLڮY\'Q+: u|\x ։St ӥgkY&>6BH5fI6_ߵ.ۦhM7V~0=3&sv5=sҨ <%8Rb +endstream +endobj +1788 0 obj << +/Type /Page +/Contents 1789 0 R +/Resources 1787 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1791 0 R +>> endobj +1790 0 obj << +/D [1788 0 R /XYZ 110.6 770.89 null] +>> endobj +494 0 obj << +/D [1788 0 R /XYZ 91.925 537.52 null] +>> endobj +1787 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F14 1207 0 R /F2 1201 0 R /F50 1198 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1794 0 obj << +/Length 2301 +/Filter /FlateDecode +>> +stream +xڭYKsFW{`]ITDB ==C$PĞ0Ϟ3}“^|xʒeV.Q3)EurNgl:3O|ӿ?ή|-7/>\u!4$,&q1L2_^|' p'rhWUr} 8z ؑ !U$|fL2 _?Utͼ3inWqf7}K]Xu)m˶Xݼ(ϋc[װ{hvY}޶h dτ-mlV]qQ9D{wn +hYe8#EHptE't: {a{H,0w]̛zMY"E`a>eןXuWǭWrg1l]| 42=:S!"orcR3@@){;ju S]j. +9rGv +^weTXJ,X@TV f*uG0euIkzhf^PL/;޵͒Z+46ArZ(# ͔Cc)O8NgyW7mYG{Lu,<ZeoE*ZIp̙WSay^ʊ0YN|ùbvH&3#A鼼gϯo5gSz<"VMy$ij9/rZ(s 7w% Zɏ`j>A, cD'6\\X6mhE̫{Fw>l@N3 fvsluIS#8%CgR;9 ~춠oy +CbЁ̦kq ,(!JSEi՞G-x5#p|Z ]9Q޳ /dΛ +;bk18qYX3gE}Lj]{pmUtdoŀGADZG`4@^}n GɢbO +1Hi5SNH:f[\JߧrCl20vXWE H 1vˎX !l̋*:+XmAckdg&$ERhL +iс_[>] ק25 ͐3f9 +=o XK >AeQHř1"F0aK ~?̛&Hl6'0`\[V(nӫǾ-QB>ٖe],{(fRJLꭻi\'!)|ePoz 'T>  +f}Zl^!4 WsA/.f!Rְ4yA$W29f3GfS fO1.P%BLN Ө(͜u;0',d +6uKAC5 dU'I!rDQ$''Р̺%<1~! ɄpT,%I +F8<* DqhЉtr:!~-a<^zM f1Vx9!u +aR"QF280'B(kNa`7Dvc&aq$:'xz@4F%@BLo @Bx M7Cs"gZNEJb̌3eu)osxq)VP@avWHbdPXz#K1RJ_ 89&ۀ7k ̨`2sH@U٘$i.6R(8<3 F= . +%93O3;3̥ +?`7A<>Xԏ0 wvq$j^ +-ǷnW8\bS;swW.*9ڷ9ε{mK)$}7D\B:} +w&'qAaFsqBeLB3}$WOKT4hWz:RDVޣfcYtR_tM4| +endstream +endobj +1793 0 obj << +/Type /Page +/Contents 1794 0 R +/Resources 1792 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1791 0 R +>> endobj +1795 0 obj << +/D [1793 0 R /XYZ 90.925 770.89 null] +>> endobj +498 0 obj << +/D [1793 0 R /XYZ 91.925 442.004 null] +>> endobj +1796 0 obj << +/D [1793 0 R /XYZ 91.925 361.357 null] +>> endobj +1797 0 obj << +/D [1793 0 R /XYZ 91.925 329.476 null] +>> endobj +1798 0 obj << +/D [1793 0 R /XYZ 91.925 261.73 null] +>> endobj +1792 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F2 1201 0 R /F50 1198 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1801 0 obj << +/Length 2532 +/Filter /FlateDecode +>> +stream +xڭY[s۸~`2}H_IQJRut F KMhFg<%L\ј12*Mo?$񇻛_p͗www?__qŀX2r%*!Pluo4|U$ TH/_ k; +0P(%\T`: P l5`[yr gg,$It@rn&SΞ{ĤIiD]WW W2lR™3;?'\"12*/0mQRHB +eM! :ACA\ +fjRz 4s#4I: !J 9Xc}7e]*?1,I8¡S"CǙ=ᕦ<$xjNB +MLsh xW;VU! x'Jku.JDHe] \@Gd\$r"eza'yB dhߥ̤%=NhuSLO9]|Xymp_]vl^TCqoo9uE0'~ Z/ +2Gs^agCn͞Dz 37bdcQֈڻ \lY{~PIHY!س&ln,i)V9_[cѶ}cL.H?(4_;~AU -j-Khs->7 +G; \ |9Vޫ E֨\!@MUlJ:jK`1T:¸0m{ŝjyo4OUî~ln[,mR:Zۙo 3>AM>Y +M ]"bh=8L+iVmSOBkQq?9'rr;9 +wՖf '7k;s[l-|^_O+|s ZC@TGk)0JIRX;XpD #e +`Q7`.o쪛J_Ѻy1zPqӖ |O֛B 9dZeޜL>Q*tg&g'1t;JC1왰U _f͛ B*:& rDz^׍&z:z~?!uԖc5IFKgh& JzKY_!Dj{}]b઴?v8y9xJC↸#z缲G璅sYíI%U/i Ұ`*{>abf@ىYn$qng4_ČG0ٲ*P0!?D)=:')P(awå7az5u# Q(&p:ާ0}%3 +OiR [B*Q6Wl׺f>8Xu;Ӵ_~m<+!`CLo_];F83/;l42,Wu" `qN>psNgw£$T br;s{? =7 +endstream +endobj +1800 0 obj << +/Type /Page +/Contents 1801 0 R +/Resources 1799 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1791 0 R +>> endobj +1802 0 obj << +/D [1800 0 R /XYZ 110.6 770.89 null] +>> endobj +502 0 obj << +/D [1800 0 R /XYZ 91.925 383.623 null] +>> endobj +1799 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1805 0 obj << +/Length 2366 +/Filter /FlateDecode +>> +stream +xڽYKoFW@$=8gd3Y ;I4ٖ:C!SU|ImNj._Uj]|z秫M#/ZmVLUI7j[>oB8a$?~v{;&77h퇛/wۋ/$&VrJ7Un쇫X0~%\}63UObq,($dH!A*CvyۊEn=oa}^ ʹ<N):n[~ '+USXt%c7aK;tf +^ +qDX m| 1㯹/v$&klڡy=1hcTYAKFD8T0/jI cxm^fAtըib o.=Y]sY!-Q`J07CFA<7Ѥ(6] ha|a=UnWr9ieƉfzψ3~ +Ʋk-)r1wxT;v(hv׹x~FaO`tﯳ^ݾ66mT_02}g 6Cr&4uў- j}8YP0 0\} N|^:Cx(/"軺m 7kLNa ۗK3őHNhʵ GYSkEW@§xN2Pm#!a.F׽jwdq(acBW's +Πͨi'L:FK|A +AGb 7UگP -b[7D{D0S7%ஐgMޔ//Oc*tN!I7ƣ/N(a68Á6XDn7I +Htʲ^\zaЀ# rns58P` +gf7|!:2.N4aLٖ2ZFȔԃ LƩO@mg·gnv9Nƌ ?Y }k 59QǗh;I " Tbl<&ῳJQِhx-94Q +I'9^ o´ZF'7sbCx ҅Y(6XD )ވ1uJZn-2]3!I, #M1'l7Lf(JS,?<2z7V}pQN _w6L xQ&?!Eɺ=DRGV,XPrG x!]V) ]5>Bw1\9$w*`qcM. Y\d&c5Qfs") +ApCF s_ eD&^Pjm<V?wibq$E7.n- xdX +9 >PS/skX+Gc)"Twt)etG'[CIs<6 +XՔk08/z xxی'V _q.yZDcS :](B>^Ќ4uBe(1_g fv\?zHo%+K[oB4=gɓjw? @ aȚ6 o~$ k*{ ZIbtg)YB51P!Eo[H=]{YJ6өcx5rr9 r|vX+ubWq~"?JCOi^@nk1)(^1t.Ieـ:j3j@]sޏEh&%C6|8Rq E-cn^YgsL2E<>OATq0__!optmQ~8N+򜖭H)$\#AMuߴ" +endstream +endobj +1804 0 obj << +/Type /Page +/Contents 1805 0 R +/Resources 1803 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1791 0 R +>> endobj +1806 0 obj << +/D [1804 0 R /XYZ 90.925 770.89 null] +>> endobj +506 0 obj << +/D [1804 0 R /XYZ 91.925 733.028 null] +>> endobj +510 0 obj << +/D [1804 0 R /XYZ 91.925 503.411 null] +>> endobj +1808 0 obj << +/D [1804 0 R /XYZ 91.925 423.027 null] +>> endobj +1809 0 obj << +/D [1804 0 R /XYZ 91.925 393.326 null] +>> endobj +514 0 obj << +/D [1804 0 R /XYZ 91.925 149.865 null] +>> endobj +1803 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F69 1807 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1812 0 obj << +/Length 880 +/Filter /FlateDecode +>> +stream +xڍV[o6~ÆJ@̒J` &!-7ZLuIZ;)R/>4>&hu!c8"lO M"Cd]쎽8bwFĹp'߹ٍ̖ofb>$ףE22 bc/Dp'~5]#} w(|L-Gqq-vBpR1XqTK*6'2vO+zPVLD]|kI2n|eW= )B$QXשŸ 0ԣ4c(wt?2^p`qi4bh&M~aYUˊg4bJ̥^nTdf[^ø?!!Rߧsab;MQ[M,43jvōe{JS{ӠEoJ#(a&ʍ5eGi}FnIwmў7oڞ( 7/&?5u#B51k[4AL*%Y]Y`AXTVUco, |"&f\Tu.-L%7|ֈw9 z6KI']8 :(c)BO< ώu)/D]laUgM[hՑ-qHȍ yӥ +߼o@@*8w-usޤBdLV??ػOϿM;ot#&v91^''W^f +endstream +endobj +1811 0 obj << +/Type /Page +/Contents 1812 0 R +/Resources 1810 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1791 0 R +>> endobj +1813 0 obj << +/D [1811 0 R /XYZ 110.6 770.89 null] +>> endobj +1810 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1817 0 obj << +/Length 1908 +/Filter /FlateDecode +>> +stream +xڝXY4~Z^> r;<8/_Oĉ9=3/,jW"C $^6IHS}P(Q,cRw/'4~DJ~[Ibc2#"qW*0T]; ](R P$aNNbV--hێmt=mAvov2+Z{0'^ݭ Oֱ6:B K23YX&T#}>UfJɰÏ4vͩkѶG"˱=vǧiHڝ3Y&T;>Q1MՖ*MP P{TgcbzbဿM)kڙ^>㓵-тsLdp)QBѹ0I 8~ةLF{|5vD&Nӹ3O ySr>͋pr\FK,MJ4 1gu~D;N,ssmw=G.1ŷ1>Nr}K&LB2)dTv~: IP6S=VH!RGRIxr֞XڝmOeF@[n$j +Q*1=@U]ʛ ֧33ҙ 8(kz(cnƗZr) i%}{ƍJ8 OPBT\2B<6&l)ɑ6I17SH& b o04ryJa[QsM"9Ң 92bKpWIh3Nc'=o 4~!^-E ]#v䐛x>GijItDCǚwz}z$NR~?J Gv+18[ů:O3@|U^РSHu9BI@7i,imѩHc}wګj]Hc ]`59%y*HjB&ŔvQ7(kRͮF1"=͙)vf:غCIDrzIWGHԉ9;qFW@YMTD.Uƒ tKXaB0׹׳jټ]?bq< M,❠Hfv#MS Yg7̰1_H0p!cpqrx-$UxN͉S4l 8fD3fa52'8L$tum9УV57V5vv[9qzgGBEVv ؔ8;\S)W\rzKtݽTw׿]]DB[Mj6𛛭=.k\S+.'VMH 0'cuϽ%%JenW*/2wyEɱ ĀH8۪'= +aX?=o1EҾ֧cEW[Sa:WCa[֗+.JWܹ5Vx:c m&G@\7mHn_ub7bȅy m܃]nj?SNK!r,Gs[Mͩ/"w`59Reo_ q: +endstream +endobj +1816 0 obj << +/Type /Page +/Contents 1817 0 R +/Resources 1815 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1791 0 R +/Annots [ 1814 0 R ] +>> endobj +1814 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [404.809 467.06 424.236 477.964] +/A << /S /GoTo /D (table.12.1) >> +>> endobj +1818 0 obj << +/D [1816 0 R /XYZ 90.925 770.89 null] +>> endobj +518 0 obj << +/D [1816 0 R /XYZ 91.925 733.028 null] +>> endobj +1183 0 obj << +/D [1816 0 R /XYZ 267.333 450.343 null] +>> endobj +1819 0 obj << +/D [1816 0 R /XYZ 91.925 316.316 null] +>> endobj +1820 0 obj << +/D [1816 0 R /XYZ 91.925 273.197 null] +>> endobj +1815 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1823 0 obj << +/Length 2102 +/Filter /FlateDecode +>> +stream +xڭZ[wF~F\uIn󐦱iX$jE}1ʔMQ/D12pv~_`3K*f`0-2eE~a~q:N'әTtr/ʥ,#LKM4f}4[e5r ϫ u{| +ҕQ d P2ZLQ:yuwQI8%QҌj2.ϧ3[˛ǿ [4?X3ɉnU^o*|tpPutMQ+vC jH{Qdn̤*-'Q WDJozM24j-b 2[UHŹ"._}p hx=1MaԒhf"E4DP@& .}@XB'B)L)Z"PD˘v9Yu<^j/1b|ͦ +=M s,`(H /ApWxVE bt b +OGAp`gdp02'ux4bV-Iap4K!wO)9z+f(m;EpLBJӡpC8)Ti"?n,)S>T$/83HDVD XN1i"!(۩El<M58f n=J#9XKS"n˜["ňq  :XY)<{vhh^!bhc cv7LE{ $yPX 5X {vh_m|5U&!I+Qc|y<Fo4η{DX=U̜rf=gῲx=;K܃'CtMx#.p6 C.vt"gO`U=ЍݱFVOd e||^%[շ"ER54ewTNJl/-'!"ba5W3s!%AT|è{(Zg3̐|e$&Bxe$ЇܜAENgQ3WO!m'hOș& [,Rv7xɤ(BS9Di \iEC&ԅ?YwI ~XaK; pS80!u3QY|YQ&7時13oܬыMqS?OZ{&;4& ȴLZSbgM-y<(7^6S C' +endstream +endobj +1822 0 obj << +/Type /Page +/Contents 1823 0 R +/Resources 1821 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1825 0 R +>> endobj +1824 0 obj << +/D [1822 0 R /XYZ 110.6 770.89 null] +>> endobj +522 0 obj << +/D [1822 0 R /XYZ 91.925 657.197 null] +>> endobj +1821 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F35 934 0 R /F29 898 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1828 0 obj << +/Length 3451 +/Filter /FlateDecode +>> +stream +xڵ\v#E+$#9sX `ڋ,9X2ύd̪v)22xeB/uŧ_ټ*o6YE-b -o?^Ͽ~x}IF]-}З^߽ۋW^-2l"֋[ۅV63Viyx} ߢJUPxe|lT]^|aG}QSWN! +,_?}.+K{tй%{\+"2Dt/ " k*>>UoEib(Mf^QuYlg1πsef}X ' o4xE%&48i86TpJ,DqcD=`7,H$E:"(2ETnu- + emQa'&0X*I6n4( X/y{iaʥO{d? (2` +DlUmS"Ȯ̎@O +lX ۻjP֌r`IvARfo#D$^e)"A"匑aU±n K HE秫]A@d本 rW,v +c Cpgp[1h~٘wW)&H- )\N %IQR#xWGAkmci%sW_`֧DgȂr߂}6(\TKD Q 1J6p{<1mJZ_B.Ċ^P8*,> aWkBҼEcnM{b[n}~\7n{~~x{1&u)?KcImQn;0KNm",:?dp~ef_N,(Ӈ~^f]}~@ٖ>>n-?r{ff|5q}y}nwP7_wD'k"M֢i Clh63{xAH~䕇Cv+:Ey|#ϻI(E"!0~L@M4N s4}#FIv pUX0t0'Œ*fq%\XdM]ʢG, Hhg#Y gG-G=a)+V,90B ֆTС!BV\}889$7Y"İ/h4y޺"(+B YfYFg){eWcK"$~A$ \*yz()LCt*  +2h4XmtE4Ab#3fT;dyþvܡ/g5s{ +wRADd͂y1T}ܲGOj/e whBIEtɳJ %ɢ}I,6.an.  # *4fE4ԥF 01LC:(8xFC_$;lNBn>EYژf7B~ɺ"(BB!60dsVZLL,5PoQ˳ (1̨):h/jF;׋EC\,IeюW#ꨘ_ѯ2^#Gҡsr'3f+ Qx'„}ͻQA-h3TR]6uGeKDZD¹VbR"oWnn^<;T4G&GNyzdF j{H0=Q4 CBq|p-uEaİG-1GU)(qn,m~rڻ'MsX6Z{3֞ +0B6u9vȺ?GʡدiN(N6 wwzIJ."!#f"(‘W1"Ο +d2H̓I%DXB$aJuqm4yx=>ϓOGiǑᶤc~G]yAV_Z{xv "`uGTg8cngVdқf.SFxH& N&#T%QFe*1c8?[Е _rKO$`ӼFlL.A& lLT~^;ňZPy_^F?}#{ bֳs%z+ VK*̨ːBh ;M|z ڇԪ*7Cya~<xk׈=mUoGI^0`n+ ,B` 9lBee@IJ$@uk%;t!_V椷Eڲ%Y+_b3JS$\{@Saڙ3$ S5 +dF; ?7O|WD,ɲ:N|]`<틌%:g\/D;*aLAH]C i+/!}vq$T1jϾ MU +endstream +endobj +1827 0 obj << +/Type /Page +/Contents 1828 0 R +/Resources 1826 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1825 0 R +>> endobj +1829 0 obj << +/D [1827 0 R /XYZ 90.925 770.89 null] +>> endobj +526 0 obj << +/D [1827 0 R /XYZ 91.925 287.095 null] +>> endobj +1826 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F41 1063 0 R /F50 1198 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1832 0 obj << +/Length 1683 +/Filter /FlateDecode +>> +stream +xڝr6`N):حspXv&"!T߻)RrX{ 9ujʏ؋C:/}Gܓ;ŻBHr2d__^Z]fg2;1b!HF^K'>|bN +{oy0;'ܹ>cV/#-!eY0`Ɯ e5fσ8A챀xaǵ0NC'[q-AV! 25y]"sصu3_2tך~LtV*'c3h"r/hym:+TSV'@yKIE dN[VRMp2[n^[')$Uy1q=4JPl͔ F,N,A ZRpiI%*{!s]JTgi>Y%H/I^U +y)0aiISM5!F&*iZ,E`ك;2"u2pPB +R{c N-)z\ujڣTGH܆؈P}dE뺣aY9Ә}z'*| DX"{A15.p{V +U ~0DwL5J6*8.cO|Y'?V xY[V#%CGȥ'eFXObBd֝PGR)ʸه!Bpg걻ZeKGzquR<`. +!eFKxFa;.(ߜ%\N'|; !m A+ +fCCSeQf0$WpkV5 r" {=_>!f7Gea$U5*aЀ`S{4`3N47{JG=1٪`Z"W>зZVZӄ%>01GϑضLQzGWbJΓ6wShT) Q> endobj +1833 0 obj << +/D [1831 0 R /XYZ 110.6 770.89 null] +>> endobj +1834 0 obj << +/D [1831 0 R /XYZ 91.925 654.266 null] +>> endobj +1835 0 obj << +/D [1831 0 R /XYZ 91.925 622.815 null] +>> endobj +1830 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1838 0 obj << +/Length 2652 +/Filter /FlateDecode +>> +stream +xڭZKsFWʜ{\Nmm XV{ @B2%E=G4D4OW߾IDsE"͈,]Gg{wWt8/7Ûf7W^1K#%$\EFbVhwD$]$ THտh_6z%[fD3$"ZD)vu޾WufEUṱZ5߾}UE](Vn3tY͙}?~>/ +7t헹jj?[:/[7[и`tMU^aQ3 LW"mM΁JH:i?`ղvac64e5$I|WE5 +,7^ljzRp<+rSW"JC1 OGE +p~98Qm[˛]ڮ^HR1kr^(NѵʄAV/"ᄳSgrZN5 zzb-&WGp> ~:P{20 .KW9t+mcldVoڀ+A"/+g:}G6O#Pgk$9Юu3o +BG`guVcj91ÉG$W$1q/J` Ib.Ic?^~NJ[u7o9 8HoDzō|Vdw4Z̶T9<7ܱ +Q?~q܀n+ Ǐ(Ș` lֈz-sl9ʫC¢kY[,o"`sV췹RsXں<FP@=DWyZeph,ӝ.P\aDWdeW||(&kOn9$AzT;B6څ/'bO,uL2b83̔G(^aǦ&Ι˞DO+"s&_p֮4 VDJHyȏP n.!h^~оd9 hq +OLp}iE)iF#7xdsA{ 4 +Gg<>,B>vђe:9ȫ/ &m0[ N"! D>e#Bmr>I7dgp=1SVcᄐ1 JMHL"`NzX=Wm#RZ@3E.y &%g@k,#fB)`|JR8$OvѽݵtBN͊l{A훩rރѡ +KzgMOfaGX.5ri&"V;lv7w?t}Nxׯ{*?@z!H6e旹R{O.Z!3[unUR7Qf^ nl?^O.$]H]qݕ90ap.#ޫ9نs仑W|3 꺻^|xnAa REVBPUk +endstream +endobj +1837 0 obj << +/Type /Page +/Contents 1838 0 R +/Resources 1836 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1825 0 R +>> endobj +1839 0 obj << +/D [1837 0 R /XYZ 90.925 770.89 null] +>> endobj +530 0 obj << +/D [1837 0 R /XYZ 91.925 342.25 null] +>> endobj +1836 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1842 0 obj << +/Length 1932 +/Filter /FlateDecode +>> +stream +xڭے4}o0 +mg%Q.s#Ǘd[:9 +x;E4bT(ь(΢:zٜ+3Nfsi7o_ܼǛه?/2F2D%$*Z/`#JDFsI.Ets MW/dY;Pm6Wm꺺$9\PDwuo % pbЌ8x8IX{Āz/ipSSOw7l9j.ydE|IH4$my؃`*VG8c\6MN HC 8B9bgsUߝN^>4Ϊ{8/' +_y3+S'9ҽ4ib?PL?HUoC}kB""#buKo09IsP:p3qm4/._Y< +%1 jEr XڶKzYj ̟p΅7 "CspɣY7Sg@`ml媅8mFXNw_]|E֏DǞìVCg^}Ir C7v1x✸DPLʽ'e,>L=T N% +$4L taI +endstream +endobj +1841 0 obj << +/Type /Page +/Contents 1842 0 R +/Resources 1840 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1825 0 R +>> endobj +1843 0 obj << +/D [1841 0 R /XYZ 110.6 770.89 null] +>> endobj +534 0 obj << +/D [1841 0 R /XYZ 91.925 633.287 null] +>> endobj +538 0 obj << +/D [1841 0 R /XYZ 91.925 233.087 null] +>> endobj +1840 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F35 934 0 R /F29 898 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1846 0 obj << +/Length 1225 +/Filter /FlateDecode +>> +stream +xڝWo8=$ʪ +w=ۓL0[v.z{,ѹt>$"g2wOX8qH1g2s{e鞇uo=܌ϟͤô]0'a$B'c杧g4C#;zrƝ?;t?ƨOz='(u#J>.K.`sCUKj[ εf;0ܚٲkE6*H\Dp}lߞ(fmcEJʬBˌOWB!)nj)WsZm$_ԙzTx(ʪjYZkk G&0#e%Q2+ Brn57 2Ypi,t\B(eժ/pE!mWJ=!50/6_䱔"xbi~ݛNc$8G-/' % ,qKl\ɬXKB{B#o';Iq0{?].\ tqJ 釡;+>AnnI gJAkeQܤF!dp\eG~i7#G7.;R\jW{]^p^N%ȵw_(n_` -ר*-W@{$ + +)jYnV..+{-z%34hzm'326 .[{7.'FG =rݗbXT/M[ wlX=W{>7ѴّO,k(.. U +GNMz47b;7&u\Rjx?7P3hB5xVB=+z\p#c- +`hO]m lZ^"p+$gF"6jWݐ8J %C^ Z +endstream +endobj +1845 0 obj << +/Type /Page +/Contents 1846 0 R +/Resources 1844 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1825 0 R +>> endobj +1847 0 obj << +/D [1845 0 R /XYZ 90.925 770.89 null] +>> endobj +542 0 obj << +/D [1845 0 R /XYZ 91.925 420.887 null] +>> endobj +546 0 obj << +/D [1845 0 R /XYZ 91.925 137.855 null] +>> endobj +1844 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1852 0 obj << +/Length 2059 +/Filter /FlateDecode +>> +stream +xڥXm6BA )&(\Se1 +$) Z8re;[rdKkb3áxr_WoFW)x歴hL1t`Fd4M>}zP +Ccy_~? >~z;J.OD$8I&˫y2w?$)%AshW/Wd[x&3 nD3)B(`AP3#Yx+MBX) +n_O@diDɶ;ق] e6XJg E*q"Ju؆YPya9l0(75Ҙ?Kǎ MtI=3X!4\>qI-{!,QAMb2a V>~',*cw#e M׃0iei]juVR(n! ;gB\04ҁ,\lCDϰi&Y p=dLxj8زI1ĐrZ'բ#Ī`y= =~7-)a%>=zeGdg1*oCI, - VmYFl4@$~6"vS0 Z6qaR]Zh\7bhiΫ" `TdIV)<(=a|vqz:{q\7~V3;v0.6O#_BZMT7q[&)bЕ .:(CV J/N?:dl m0n |UujEyk%VE +ܔ"jNz4x`v,7<mӘfPT:-f#nbc4%.jy +7Vy,0|yf4_!+@آJ|mdؗ(xEAõ.6 l,LZw0ta-\A8!'㱮mMFbjjPIܩ‰)rpRY3}|Ix4o/|EÛ0 +m*HߋX)~ڣex~R<^T[(%nԼk(,MqjWz>{ +;fNiEƓ;6*(m(6%y|ģ{#8_e_Zl"i6l&_|m 5ȷq1㗲Q4i(<Ê +SAV{@@ +2yßH4?4HQ" +endstream +endobj +1851 0 obj << +/Type /Page +/Contents 1852 0 R +/Resources 1850 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1854 0 R +>> endobj +1853 0 obj << +/D [1851 0 R /XYZ 110.6 770.89 null] +>> endobj +550 0 obj << +/D [1851 0 R /XYZ 91.925 147.808 null] +>> endobj +1850 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1858 0 obj << +/Length 1646 +/Filter /FlateDecode +>> +stream +xڥXsF~_#J!iԞImuڙ4X )] [Q"в} [y{?y3|'b/&ʛ/= B酊3oz~~i~y3,PԿ_o_ד c^H/ B[l&P/g%"$ + w;mB]k:z +7p'"l:cRuM 5jI[Sv;FK ` ]O`Ea^ͅU$K0/ɴ3nikIU&n^F}R ,)C2A) b Msw^ J%A +|ILQuɔ {>rאMο"o,E!cOM /PSgX`V O|@+.|[ML` +l/ƶ'aqJ"yP$64w uDt\3S#L(7nC_n2).s`PMK4XCZ E+/j7bQ5b gX) ԧ^+Pu渦ǽO!J;~RG J?Gf +hLڑdۺJw+V#>H mE6tִHhE!aH0o,0F1P|2P +endstream +endobj +1857 0 obj << +/Type /Page +/Contents 1858 0 R +/Resources 1856 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1854 0 R +/Annots [ 1848 0 R 1849 0 R 1855 0 R ] +>> endobj +1848 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [116.104 678.866 135.531 689.77] +/A << /S /GoTo /D (table.12.2) >> +>> endobj +1849 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [280.725 678.866 300.152 689.77] +/A << /S /GoTo /D (table.12.3) >> +>> endobj +1855 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.346 169.407 145.773 179.937] +/A << /S /GoTo /D (table.12.4) >> +>> endobj +1859 0 obj << +/D [1857 0 R /XYZ 90.925 770.89 null] +>> endobj +554 0 obj << +/D [1857 0 R /XYZ 91.925 733.028 null] +>> endobj +1184 0 obj << +/D [1857 0 R /XYZ 260.404 662.149 null] +>> endobj +1185 0 obj << +/D [1857 0 R /XYZ 261.515 438.478 null] +>> endobj +558 0 obj << +/D [1857 0 R /XYZ 91.925 229.207 null] +>> endobj +1856 0 obj << +/Font << /F39 979 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1863 0 obj << +/Length 1799 +/Filter /FlateDecode +>> +stream +xڽXKs6W7<>43q&ii֡3iIl(R!n `I2H3^L>`<<$7]z"EHμŇ髫K3NR^]_yzivj:2b zKI"HHo}D(I؝/P8G(v\p"YE,$qLtVb<lnܪ*eU[ӛ4& xv.Ze=V.38`.?{ksN7M\{Tm82 HH9!xE% u21MVP +׾4.ZVdA=p®kpJttch D! &PhFO2WiQܒ"מ4 K>L"[J-7eb*nS~-Jڍ1˴]g+ lA@) jz@'͞՗ӵG_cn`o '~im֪e" +Qc]ϛ3v< +pnmEKm y,Uu( F;D"tcw8 +%hKfu8P )s`eMVN=x#L$* -ss6ȹs97gZ a8wxI28`LCOpù9ww)[̹{sDrx<:'=h\ 3$\MZ}RYH-sIPK[P@9Yp!Dp0%؏Tj26ғyVw 8-r q/SnTaN57.r͕_}{VV.,v|8}P"EһP F7"*ks9߾m'ZI(S[dj?ک>?-)3@N$c,WBy iyghFJ!C]nkjЪ[6(YROR`3`0@|V<mXO&.`-17#dﭿ P~S@ZTzA/:.'&+={Do/!xHW1BA*X(%j@{ۀYM +endstream +endobj +1862 0 obj << +/Type /Page +/Contents 1863 0 R +/Resources 1861 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1854 0 R +/Annots [ 1860 0 R ] +>> endobj +1860 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [422.532 383.67 441.959 394.574] +/A << /S /GoTo /D (table.12.5) >> +>> endobj +1864 0 obj << +/D [1862 0 R /XYZ 110.6 770.89 null] +>> endobj +1186 0 obj << +/D [1862 0 R /XYZ 280.19 728.266 null] +>> endobj +562 0 obj << +/D [1862 0 R /XYZ 91.925 444.467 null] +>> endobj +1187 0 obj << +/D [1862 0 R /XYZ 278.805 368.272 null] +>> endobj +566 0 obj << +/D [1862 0 R /XYZ 91.925 134.508 null] +>> endobj +1861 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F50 1198 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1868 0 obj << +/Length 1620 +/Filter /FlateDecode +>> +stream +xڝXr6}W3Ԉ;3(󐸖&!S^T߻Iіg/=Xn5C{?y<gZ@tF|P<Ǥ:֮fo>X//3jlr:i5^,ד'p j%hr(\]Z >j_k$36-bX6Sm5ubtm3)LuдMtfwI~%71I*[bʰJhlWJ;v4S8-C6s5zNL}Y^9|B=.BM<سWjٍ A{$&B̋IG/aةgX>.lY!cx/ُSCEa.y kjSa e44+VfIVf06P!>fچx)N _s|(XL9ufq.rYʕRe]٠4,ӪB' +-兴Zqݢ$c-uUu55YEuez)+a`}GP*+%F/)%},){wt*Cw-5gu5fMTU͒{͑jB#/vIn^=t]QS??~w2Mp +H!~TA6r#R__D"=NоFWa^ tv٘mTgZYA;G ' & 6XA8cJۍuK&JS% +oRv +پ& &kn`-G)߇zv_}'Ʉl Em'hu}CUaԷ٫&gЄShR8XlvM:4Kkˆ:Yo4mK^'Q\ƥij-ſ|U;##9m+17`^$@=%;ڠUQ bziV`+s$%OmY1ф>E4hM$*=4mW4%{NW9Y61܉d/X #Rj.Qݴe9E7nTd$ ;l}*+2pxJx1l*Q'-0%E&/o(ˠ}jczŦL<Źu6@=x14wp?z+,"ץ__@Y Ha;Xᴤī|{xaY\uU^Y hSA)nB'z@<Xf?hS,AloO[:[۫1jBuBuf@|_@m[ +endstream +endobj +1867 0 obj << +/Type /Page +/Contents 1868 0 R +/Resources 1866 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1854 0 R +/Annots [ 1865 0 R ] +>> endobj +1865 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [426.428 412.087 445.855 422.991] +/A << /S /GoTo /D (table.12.6) >> +>> endobj +1869 0 obj << +/D [1867 0 R /XYZ 90.925 770.89 null] +>> endobj +570 0 obj << +/D [1867 0 R /XYZ 91.925 472.262 null] +>> endobj +1188 0 obj << +/D [1867 0 R /XYZ 289.041 395.741 null] +>> endobj +1866 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F50 1198 0 R /F11 1870 0 R /F8 1356 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1874 0 obj << +/Length 1106 +/Filter /FlateDecode +>> +stream +xWMs6W&` @ҍ3vv-MUZlPTBRUVHӉЋ/ob0ˤw|)bXLDD0 TLd:pK6>b7p6л>82IiKʐB71QGdk5W$e"}Fƽ?z[0%?'Τ$#\p9f;\unPXU:]}x[o1ogWJYQ]y3wEZ,7Ӿ73+AB~;PZ;!hANWܫ6zv4W=ne-[Mnw92C`ϒ0!b ?ܪy`vR?q:*0E@8쁤qVc8TxΘd˨.jN/Þo<͆A18Au26yFҡ/?Iʝ^gDMD׷n k>]z^ aWȹs͵$_ rZis:0XYBsT5']$PaE9L[kxVl(#G42#u|m#b\;=ü +&/ v:|YG !IݦFn<]A+b,2kVtnqmenw8!Lc|%.p0TlR wr A?O!m:1L \AsrPvOCh\}*3p.vݿ@,-+&Ur'VT<w=> endobj +1871 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [262.742 86.288 282.17 97.192] +/A << /S /GoTo /D (table.12.7) >> +>> endobj +1875 0 obj << +/D [1873 0 R /XYZ 110.6 770.89 null] +>> endobj +574 0 obj << +/D [1873 0 R /XYZ 91.925 122.926 null] +>> endobj +1872 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1879 0 obj << +/Length 1882 +/Filter /FlateDecode +>> +stream +xڥXݏ۸߿B2)p= ]l94k{mV+KICڒIq8d盿nNIA +U%B ,#dMiuy䒦R*?/~[rszÀ/MXR0Rp2'x7l엄QQ BE: EݦNW~+9R'9SD0u4-׵?,ˡjGʡzSb%#y.%g$ WK)Mn,k'pVID7hƞQEt3n\+|9@_̉WŁz{Ոɖ %Ѭz߇v3b| <_ y?RHR)}_vc |u`˲~ϋ36G`g*:‰TeXL%7µف^BilMl{pvIw1ں+Q g%X#7CAof:ˎIaoL:sWIB- +J2qxI=s;JS"aNJ# iG?;+"sp }/Zoh;D|]BJlߔ,3DOq~o:O T:|cET[ T6n\=!خ۶6%#r ۨ|Y6&H—i*'596{8`}8ۘPMX5Pe˩/f4W4nKݵuZ}wڔ"?fgbvr*:MKmZ옯SЧ?f q5X0tVuּ]A+5LH7'/ A@.A> endobj +1876 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [94.247 319.576 113.674 330.107] +/A << /S /GoTo /D (table.12.8) >> +>> endobj +1880 0 obj << +/D [1878 0 R /XYZ 90.925 770.89 null] +>> endobj +1189 0 obj << +/D [1878 0 R /XYZ 274.929 728.266 null] +>> endobj +1881 0 obj << +/D [1878 0 R /XYZ 91.925 549.045 null] +>> endobj +1882 0 obj << +/D [1878 0 R /XYZ 91.925 530.17 null] +>> endobj +1883 0 obj << +/D [1878 0 R /XYZ 91.925 499.341 null] +>> endobj +578 0 obj << +/D [1878 0 R /XYZ 91.925 379.377 null] +>> endobj +1190 0 obj << +/D [1878 0 R /XYZ 284.613 303.91 null] +>> endobj +1877 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1886 0 obj << +/Length 1109 +/Filter /FlateDecode +>> +stream +xڝWs8_!Νi܋NgryP@$^}iKhWO+CրƟY2ypB#g{F1w CH2ʌ:ėSD6Z؃fe^/Wu~'/B! w&Wȸƽ|^c2Vubm}V~"@\aQΧyduM?:kQAZ)jwۼ|S|hye=+i٨fKK5h9nev<[ZCy +'VJdہJ#v |*lO+ҰMaծ_Ib,orVB-4{rB\6J]JXTB:E|s[vQ-.yj>Ԍm"3sJ`8N +[8DJh$}VS1Dڑ~˧66RHQO6(P[T7; 'T';ȋnx) x*EM5{>HW{K/P34p"㇔pATQRaWղJAzn4cTd:[Z + }IbjI6@ F\j_fw>Tc44d1^Z,– c:5l.c>B.h mS~C +endstream +endobj +1885 0 obj << +/Type /Page +/Contents 1886 0 R +/Resources 1884 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1888 0 R +>> endobj +1887 0 obj << +/D [1885 0 R /XYZ 110.6 770.89 null] +>> endobj +1884 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1891 0 obj << +/Length 845 +/Filter /FlateDecode +>> +stream +xڽVKo0 W调 4gܢK56Aĭme"GYr3,C >~IAzaopi(gy("{hc;(v-=ѽٷ\bP }#h<46(}Q%rط]eGb]#`^k 9퀜qslss7Jl<"_^\E-YNxT}TQqIxWH9\ݬڡ2Y! +ק(. .%uB0yo[]ԇ4J;Y}'|䍡FjU_&kŠM5]q;iբ;t';>mgrQpVb%{H*沕΅HC1 +$eGv +%]$'J5sQ$yV/'USaBr\V'YdC8@yqR%"gi2=1{  *;੃E,x*Q˕0ecvYT91mD[E3^WQ>7I]B".5\ /`*hæUAiéiTӖj#VV!Xչ6 +ٽz .^b4]D?:)[cTol6+ j-. i58t;܆ٲNM; M |Iz@_4Uaޯ^:tøϨ5mD"HqZLJv4?R3)2b(yaI7&R.Ն .ԉIŒB;dT@Uʊg_ +nxg 88| / +sH +endstream +endobj +1890 0 obj << +/Type /Page +/Contents 1891 0 R +/Resources 1889 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1888 0 R +>> endobj +1892 0 obj << +/D [1890 0 R /XYZ 90.925 770.89 null] +>> endobj +1889 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1897 0 obj << +/Length 1907 +/Filter /FlateDecode +>> +stream +xڵZKEGvNU6dz7<vgf}>I6mh7,(۲u4[g4@~PDk/cNKIf*4&?E=_pEgL9.X2- ΙcŮطM]\sv菛#٦ߪY%rGv/m:_eoh6ch|!{5վ}l慱P0YbR/j]P/[P#ܹl|\xT6*(NAkD:} 3wI"ȶLJ_$3/8IyGBhxK :-7 ס `:q= +F0`fF(٠\R,fǿc6)&a\w\ +|yWNQ%I01__糝B∶I<*&-U>ᚔ)N )x֌Rq8*;buE#t +1RuUp(K(=6쾙(ak n\OG\4gJyF# rE}!JgdDYȀ2_ +e|X.҂'bGNpHg!հ#_}?uSVŲG|?8aiqk@ !B^w\(?#}fBOOnV&Tuݕq!QGđ0In9Up򮤂S8yÁ]4A Tȹ#0r +{v*F)g*ɛ\~+[-"I"8˭JHV }bxW2,{84LY[@*;/?ղX=4C)qwꕆ +f^HLH6œK3 R,6!xx|Vouf8 =9nchj%y4DF@YR49yĘaIMnȿ@$~e3vGO'2%o JgY8_ nzxک*)oܜc@0+^$XDfKHt4-7kD&ͮ`;P옌ØeP>b/{'SNvFF$tk5,5r*om^MnǏ>޾,wx_cYEZ;!&2sRvw[0,LӺ xC8᳆(DEA̬~)OD*DGpr b]/xˏn4o2P]@c~$c~zn&qdW7msNORA=*a&, +endstream +endobj +1896 0 obj << +/Type /Page +/Contents 1897 0 R +/Resources 1895 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1888 0 R +/Annots [ 1893 0 R 1894 0 R ] +>> endobj +1893 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [477.33 155.528 489.285 166.432] +/A << /S /GoTo /D (chapter.17) >> +>> endobj +1894 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [112.229 143.573 129.166 154.477] +/A << /S /GoTo /D (chapter.17) >> +>> endobj +1898 0 obj << +/D [1896 0 R /XYZ 110.6 770.89 null] +>> endobj +582 0 obj << +/D [1896 0 R /XYZ 91.925 733.028 null] +>> endobj +586 0 obj << +/D [1896 0 R /XYZ 91.925 354.731 null] +>> endobj +590 0 obj << +/D [1896 0 R /XYZ 91.925 125.516 null] +>> endobj +1895 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1902 0 obj << +/Length 2351 +/Filter /FlateDecode +>> +stream +xZs_7xo)ձqF8;q<XH(ȋp"v~۽݃pp/ӁFZRLS1JH$( IkO 8$ 'Bf:,Bތ4z?{D@>H TPD0[~  )i<ؙˀS00^7qMH"AdV=%qż@H`\#Ƽ .%V8E |B$R D˪eוw+1HG*X&!`2*# 48ft~tQ +s8ޘԉTXq?LȚ59H(Ոc6CO#Hj:L@FqPi"4V{2T]1"0o9LcôLY$d`'1Cq9bF4 yA E) Y#$"P%ʵ<1 +܊f# +/Up@@0V T B_pa + h4NIr;Hl'7(\.Ne#*ؐ\@?7<ΔAK + +E~C_}az($CAR{ov yгKDհE{Yn4"aI4\$|~ 6*TbVwY`j5$Pa>  +lf}"ps#AR1 W O,t R. Qކ{Dp=2Т3gLvtY)4vyc|a|bȱ;xRUxU h8Q`~\*Ip_e$/W +@_ mǩ8ImY>u$.zLDWxw.tX26_PhLvmc1l r2 ٽʖţS\Eoxx$Uc͍h`r4q~!wހ}RO8|ʽ*2 \nBP~R gHNy&[Xf} gu/pR;QGgsOO H C]~4iw~褽Y8=A~Нg&%ih5y Tߗ=fx'< /Iɶ +T_Kne+l I7gfփК͜Y\E{ *[ix<ܷU:s)w>©typS/zli㯩zn=~eFsԏ+W,3 PFlÕ ~t˒"5&.M$|k|[,!m1v NjՁ1 mM*hyw*klumNghwPo5w-st3+xO֙i9rvyp2#Gp؆s?_4 WJ{1GExur;M0ȷ梈{/87/1w=4Ew Wî4uAt)> endobj +1899 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [410.955 571.386 430.382 582.29] +/A << /S /GoTo /D (table.13.1) >> +>> endobj +1903 0 obj << +/D [1901 0 R /XYZ 90.925 770.89 null] +>> endobj +1191 0 obj << +/D [1901 0 R /XYZ 241.784 554.897 null] +>> endobj +594 0 obj << +/D [1901 0 R /XYZ 91.925 146.205 null] +>> endobj +1900 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R /F14 1207 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1906 0 obj << +/Length 2521 +/Filter /FlateDecode +>> +stream +xڥZݓ۶tҌ䶶O:yx:/7@J(t|9Booy4ZE4zwo,h~ <5#h>O7Lg\ d:SN>ͧVL^Ocyi͛7 ӈEUBEh%š\G Bq} <}^QMQojyBYh-Gׅ=]4~NrNj$ Un$ϾPӰ( =gN7׳!N|25I !M[T"]n]~ܤ~ i%U>qI,ݓOxXUOjG}X+Cb姖YFńie=?$҈E}BDZS=GAHKd'hHsL.@JXMx (hn&]fAE;0ZL՞l8:D&Ҡ OC0J@ f $$I)Nm NcF8Վ r.M8(JKDK>HBبq$bb8j$h C(/q)^crCΘ5[I}2-+ {T10cEFS!ѿ8< F!/g%9BKh< +;$2J)!q Q9" @ٯ&Eup NZ< +),$VjL]ZE +ڎ +| `֊&0}= g}p*NN5~zG +C +q|?LA!#dSsl]V)|ĦNR/qeQ7Y>YSp!kBӞVC?WYK - Uad)FP2]I./6n^s4~n4{l> R i!ә*ݨ}BCj*(ϖQoՉ 8wӨNVCʚ_| b&I9// Ðd(3QnAkjS/:{E(\ 5kEʹ8Hmh2lQg[?=e8*vb<vs $C{&uu*3 än28Nm_)~( ϫٱQ;nS`Í )Fߟ׮ ki;RC ufAS}ZPx*Ht + +p@O  +t]^=A>v)5^@filv H &#:= )w=h?C+- , NUؽ2={?qaѻy Ԍ΀BEwʾumlBAΊnWS ~-AUw_"樠< ?;t2 r_1lf&ޢL\I&lvb^`VSj#{!e?+O!PK [@ +stK݇_ +pPjxT؃û68d w8pw'f]%s7X' ƞaY<Λ]qwEY@'9n3 6sԼ^ xJMޭ O-Y(abg6YM(/t2po@*lty6t3@$= 4V~cֲcfp :*/LZ2@%>^YLajp(z ,Ӻx&u(ag:O0yPZYegupzscEGh1,4+Yb3wނI&3jvt]9c!s[tPp*l +PHE +endstream +endobj +1905 0 obj << +/Type /Page +/Contents 1906 0 R +/Resources 1904 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1888 0 R +>> endobj +1907 0 obj << +/D [1905 0 R /XYZ 110.6 770.89 null] +>> endobj +598 0 obj << +/D [1905 0 R /XYZ 91.925 400.186 null] +>> endobj +1908 0 obj << +/D [1905 0 R /XYZ 91.925 248.753 null] +>> endobj +1909 0 obj << +/D [1905 0 R /XYZ 91.925 228.828 null] +>> endobj +1910 0 obj << +/D [1905 0 R /XYZ 91.925 208.903 null] +>> endobj +1904 0 obj << +/Font << /F39 979 0 R /F14 1207 0 R /F29 898 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F41 1063 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1913 0 obj << +/Length 2213 +/Filter /FlateDecode +>> +stream +xڽZKFmEc}O1>A1=7H^HUU_E׌f?>0y?ql <3Y6eј+3AFci491Ϗ<|yx<f,s82 1BeolϾdgw?rI./?(,ّ;@ x.(NR8^?w?w }7kJ\D\ ~cip91I_"?јQz7iیYprqD qx=-Ee3b4/bZb,7avz[ b:n9k1Ïr6ehgˏVwAi-Ey>­j-SA;,[Θ!ԲLINէ!.BfH+b!0{ AHGdErZRϘ&V`h1p9ά1u:VJWϳ, Ж6,ܕ^!81Fok5>uPQV=4}TK : km&9BLm\x7}qG;!U9w/)̵;Von}ۯ0(aS +IP( N&)E#Âo`_`АlBM_9$wT}ҾZNNh/Ytι_c Qڦ9EW1`9@Bq۷0MVܯ#5ʅ:^Cq}ei=\cx7MjI0W1VJՙ%t R "ju/(c G +e^x5Hrj\Z/d-ѝiJԶ>" H۴|ê#iKdߗ58ar:"o}hVD?@#B{ўd+hGqw!'4tT#vmRB|11kCiUR6X`w "ȗ>Rc] p;qŏjÒR’ Vvaata¼g+,44 HIC(5rYޗ?9n+8ZbNAd *,CwQ`ʶOm Aߔf\)3; PjA4HQgHXHd*06LM]'qqr@AZ +hk-1qGB#DB` r-t+ٛ$B&HIQFuR ,En}l}E\( w(L˝"L;X'eh#R8ї4 tgp\Xw&SQ4LU !%AHB\;{x ଏ3~aBHޟ'}.Z\L$²՜%bH1/pinY(I~HGE[Խ,!Y9yI4gp kˤ ++ޢ>ҙ -Ebe sm|ӞŔ[^ta"sn"Ą|0}"gބ3AqCXnӴ#Hh#w~ؘ50Spwr@.M{ _QnoŦgu\j1`8c8v +s4\T6̢ƭsc +~|.h׌*"H i<6cZ8`\'D3ưBehC^wasRmjzruU fLZ/Uv7<Y 6bpg NK n|e~Zj:Oun  ?#t_0{Jhp>qvV'4-<`'Ǒ>)p}q| 6P|> endobj +1914 0 obj << +/D [1912 0 R /XYZ 90.925 770.89 null] +>> endobj +602 0 obj << +/D [1912 0 R /XYZ 91.925 623.999 null] +>> endobj +606 0 obj << +/D [1912 0 R /XYZ 91.925 170.373 null] +>> endobj +1911 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F35 934 0 R /F29 898 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1917 0 obj << +/Length 3205 +/Filter /FlateDecode +>> +stream +xڵ[K-d8C:ɱUIk+,e ɵg @+ =oM>zn +vtqeJʑ)F_۟o2JBX>p; jv"߾ǻ~~ͻۛ#1 +iF8͖7Gxӈ3siW׋чq/F޴Gu8iʤ$/PP:0EޞYy9I|!, +d۬iO]Wmr{/;GSHgC&7X[Jz0)^UDCQP9@I2)BZw|HY6ח\&jLjF$.F3su]y# ry1(z*&[ցIr; u;ZS/GYx n7zDOQTC+zP.fK3mtMH$EuسB- qH1%b(m*m9'O0Ț_ cvu6xMb +ǿa!E0R@( sX^-4\@>d +=cMz l 0K͓EfV/]`DCo:᠟'ŒZd\Ż]#88yYcoaiE`^%fծ3]ϫML7a`65ѯ/e\ij@Q>fAV(ԓ&gI[q"Λ" `b%;ڇ]0ZOz.{θ&B+Z7rQQ9sr.'qTkAIB$D㞫ug8X<"U+zQǎIG2 u28v2lW|@J$)`VN% \*K+@e5.P`@P*9du S2Pe$B%U9 ))?-2>:I$1MB&`L_b"a+('SMu,5cEeKI5 'Ua \_dž/H]J(X6&5+X2\&3 ZF0E{94;U(VcǪuj( +IN{>LJb '. c˔6$,%{ˌ>-`ABzT/Id +KS4d@TmK2 +Apδ.>xuklPUxz .8}CfݔmmTW!WwLc"1i3_?r P^*gxU?L5/z/W4UlW}{f`2=M-fI"-wrTKN&NQz7Վz[ShiWoOn^ +D~;1Gj\ovuHʜizEJamqRFx5j]#IpmCi7OV&Qo6" gĘ1pyл-]1XMp 0(d)jxe\:2x2%>&'\<ù8kߌ ]B0Ǐ[Y' %7։IJud"˞0s<ʎ򵛐8B?Nţ4mC}ړx׌Efϻln]Hq:6Az:YeBO3^ƹhڤնi38HlHAfNp-+}ׁȼZ*W+UN#HW{ўÒZBCڛ1ƒBhU+}h\ h&! M4mzAɆ'$tSBwCC:}l&lNoP΢^> )*Ӊ"饸:}V**yC'wmYDPQN6g|oqr"]PC(UY~ekutis}ՀO +^7}Obݠ m[g4׌<SzYm> eM:l6D1N?oix|NfVf|Ϡ<+/.;h6jKO&3IY}ro3KE0Tn2>Wu^l\~~W{[Xea[J[,P JPFX|Q57sCxzw '> endobj +1918 0 obj << +/D [1916 0 R /XYZ 110.6 770.89 null] +>> endobj +610 0 obj << +/D [1916 0 R /XYZ 91.925 635.469 null] +>> endobj +1915 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F69 1807 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1922 0 obj << +/Length 1225 +/Filter /FlateDecode +>> +stream +xڝWYs6~ׯ Gt9ZqfK;pev7v Eބؽy u/=B;|u3>f#CgN"Q,ѷY'#FKNSi̹91sC+MBݩ0D3!¬蘏/fZC0K3_r kWm Y,M,Mz(2ڴf34,6v%u-ʎyA].kjpd F9NQ[iwi +ל cs=gmVb ٭~ -U!T +Oң r7G"؛l%LCׅD +jXwD^0DBi jwك!::@ bZUZB0uNᚳJ&(Q7^kQ% D}ɖ^ S%\0MAO+VL3jU ֪!1UzY#~;pMAs$3Xm,dj +鎲4DW6E>f0SԊar6W)\C0EQХXQĈEg!oa!!nID-bɎ벨 uwW[Yfǁ+2 ʒgVpT<&(!D8@j{A"0PvS0Aon[> endobj +1923 0 obj << +/D [1921 0 R /XYZ 90.925 770.89 null] +>> endobj +614 0 obj << +/D [1921 0 R /XYZ 91.925 165.753 null] +>> endobj +1920 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F50 1198 0 R /F69 1807 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1926 0 obj << +/Length 1904 +/Filter /FlateDecode +>> +stream +xXr6+f,oi66mj]YPq"Ht @`َAރsчG?^NG/4ҒhQ% AI4]D~uzxB C㉐85/DŽxz՛j:4" G$i*D$(a"oFh^G1&!8{5fځLFJ(Q8ȓc@0')P![<+vyqDr)l 4%*.2W!e Ab}C Ac$9pS+$u:3UnMP}fpy3ez*"+SNt_2!Fk\'U1vD0OqS(AD$`68(I)8YB"OA'( H9&I8HJyM8<ٹ:p>& jt2q +Y\J +HJ&#D;,vAʭV/{3 (ЅVˢX4 c~T[}jtjixCW4augф:϶mu͘ + +K鶫"BP }&=NDks8$qYׅGb"M=flo)-5Wf}J蓈@ꯅYM7Q12ħukJp PX@!vL[:-8 Ns 8jn[z^xׄ];RXT}XrF,كOnmqyQo U/Ε9Pg&鉟o1I3kc  Hw~X2X֯UV3 wɪݸk*WŮq @1 ځ6}x]lƇّTӕٙb_[6>1wnܪVn57*y0蔱't8[ouYX─.8Lh|4:K^[^Ylyy[,p(CCNx#ۀZtҪ)Ħi3L`fkYL`Sl3N\%bb/oM +rpܔ8KǗ+\+an=`TyCyY2`qY;Enfه} 4ޤ~fqilNwl +vBү­tk&6v[0Aу0i9v_e^A*XlN1 4ljJfHi:̈>'bLwe( y 壽Ҥf1G+r>Ϯw&]ܻw/l7ֲ24 xM1Ǝb3]ۃŮlzPۃ{ٶ_6-qo#o:ǩ[U\)$LAU֭i(6z|omV55[R(\Xr:u5_i̇,Е#Rs0Cem拰Ӧ6, +K.早[\?]iĻyR>*3cn`y;0̤Uev-UOsca? +:6&bH0?HM9Ohu`RwUӎCPD-]O]B"u> endobj +1927 0 obj << +/D [1925 0 R /XYZ 110.6 770.89 null] +>> endobj +1924 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R /F14 1207 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1930 0 obj << +/Length 2582 +/Filter /FlateDecode +>> +stream +xڵZKsFWfr!H(N%|p|HPB h)RtN 3 d8?'. 2lȘQ)I$γ/~ +<" 'Btl2:uz5:|zqF2C"SB!D6?gsxK3:{rog2evu 2NfN";^x"1My_|+D)agۢg M}nʶOO,O>͛͝yѼQ *>ԋr[r.$IϛIt`(M4H)Pnjwjk/€*(|j/ֿKcxM(b)D lI56&bf߯]91?Q#S`;˺~$gujY[caBvtE\0S*Ә~urz`Q6kYE{[V7Os?1fDx]4^-, 7m~UnIGrY=N] Xw$&=$[ +< + +8kBBJLb(0n+4HåAS$i` :(: b( FD'6K2ٌ:?]&{=U?˽sʄYx@a bD91;Se"H #5lM K FB z(d % |!:M4]3iY A$n~*VnUHX(3?B DHXUٖyʙ S8K>h4 G`AcIgIeIش%Cb(V_M 1|lն 0Q` E$ Eo8҂Tc`8jD$9srH@1yjlIB<:*cX;)e·ˍH(>NA!^a*wxP>9'c*)9 (~ڷD ꇔD#4b s@&&ӰNr*Cj\.XL@5HV!E>$hbG Hs}XL4ALS'AǠ@%l*Gawcb*jݲPu"г w}jэ;o|](Q}jݳ9T>{\.5kZ&`+#'8sOfm1GFC v2jdtͦ?hM@Kr̶gUN/!`6 l>60( 7q:?LImphFlj; x!8}88 +k˘Q`7JX Z Ӯ˼.VHoFl5k`5Q`ɴ#}~Wۃ3KK1Ibp~kg;=xJB9[?DAK{VqT7> endobj +1931 0 obj << +/D [1929 0 R /XYZ 90.925 770.89 null] +>> endobj +618 0 obj << +/D [1929 0 R /XYZ 91.925 667.001 null] +>> endobj +1932 0 obj << +/D [1929 0 R /XYZ 91.925 403.272 null] +>> endobj +1933 0 obj << +/D [1929 0 R /XYZ 91.925 374.311 null] +>> endobj +1928 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F50 1198 0 R /F69 1807 0 R /F29 898 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1936 0 obj << +/Length 2751 +/Filter /FlateDecode +>> +stream +xڭɒ>_[*;r +#[ˉXA$A ,У 6gǷo4ǻw߽&2h6&(֌(΢&8{ӛߖ/3&|4}X΍3f_]~~y4bap*&Pzm%$ѣG B.p;y 8Z9W:=֙cy]Y9W.C.{'Y%p:lȀjBN:-qWXZ"xJ̋:LEFm K8[3ân&gR4|n;uu?b3}5_Iѡ;STA,/uYMu\7w7S'!We2L"4 b4ƽM* VjB]xgC^|r{N)Һ'lʆ:Rzs67)e ~mqY#f*y:h/NPmە~mj9( &,R L1Wgi$LCBM\ !TRw8DswlQ a4{>Bv/qhc|X5 Yv, +AHIA/, ЭJ+$dE]^ +AX̟/mE 񫮉($M(l~á|9 $0@!, f.<1M2N|q2?,Lțo"xR#pucϦ[ d|( ](Ab&AbEXp1%.&u1ʉ.F)d 1qd#%g Un_[Z(+ (Vb@1FLbYĄE V 4MiPih.<bhK-nժ #[($HkBh8 +L qT;rNNhzjM~a(y"[x9]䖚(h@q\@I +vC0k:k\L1%qn8cJ8Q~L#K b _~ʪԐT)|0Aꍉ ab;F@_-u}0"VneJD;D.-L$F 3 i ~NTp3u6ڙI6Y@0ߖ]v1jwƯ簕D[*`ҟ$X3a4qq#:1tS_! 'ہg,@Oa2^ԙ*~}l2v(Gchѹ{Xg&V )x_,ᅑ! 7y犰^pJ+stڱZyXt~-SPVѕrPF;-wǟ}q9vp/@ V5Nլΐ;Z!<&minB*wR 46?plt[I^WrmpEP*m/ꉎK WlbwVUK3Ԫ Z^ +?zt i7kVGMZ}SxP-X՞SC'*pu[NhGywX]p7Gl݀%q\EMd(֡) +d'J@pCZ&+BM UƩdޥu>bWˇv09uL!{CNWi $ zٝ%fxmxur[guV۔fmÔn=:Pp`? w]up>,EfBzItJ~̚Ǫnʺ^TFaO*u'4!xUz|m˴t쒧L  y;Ut_hYݽ=f<+Tp 6r^`,8"r þo:іo/UV\{8¯hA CO $a4 9{Mx +endstream +endobj +1935 0 obj << +/Type /Page +/Contents 1936 0 R +/Resources 1934 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1919 0 R +>> endobj +1937 0 obj << +/D [1935 0 R /XYZ 110.6 770.89 null] +>> endobj +622 0 obj << +/D [1935 0 R /XYZ 91.925 663.946 null] +>> endobj +1938 0 obj << +/D [1935 0 R /XYZ 91.925 396.936 null] +>> endobj +1939 0 obj << +/D [1935 0 R /XYZ 91.925 365.242 null] +>> endobj +1940 0 obj << +/D [1935 0 R /XYZ 91.925 333.547 null] +>> endobj +1941 0 obj << +/D [1935 0 R /XYZ 91.925 291.955 null] +>> endobj +1942 0 obj << +/D [1935 0 R /XYZ 91.925 248.251 null] +>> endobj +1934 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F50 1198 0 R /F69 1807 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1945 0 obj << +/Length 876 +/Filter /FlateDecode +>> +stream +xWo0~_DI< Xm#ҸKR{MJAbH|;ߝ z"\PHC/q}Q!0Hrp뼼<>C 9׉K};*v7Q2`a (# "|\4+9CB.u} pGkSnvq̦E%XfT^!'׃PUcrؗ<}0|c XE3"(? +(}UVP\x"@l2̊FsUuQZLOKKf1-4YXbqU0^/DVA}uIJ/U̸mcbi'- k /K.VE5!~s击uidǭCEGyXGѤPʢLs^kz?Klf+Wy;[z*O`&u!כ]JXJ> p BSZ?iƘݠN ߚ>(/l>΅sȐ\. |Z҆iO/BA xWrF!ĸJKB`rt\ڹdE͚U{jozsRkxs*-v V~dždUerWٚQLJ6_Z~=boz&c8sݨaH64qIqMPoSMuPw>{82鶛ltYO7 VH5utΌZlL|ˀmCQ犷̮9BqQHm1`ݪǼnDDڵkx6[(?ɝLvI{qG=8~\§_=wQA=aAgE@7;4 +endstream +endobj +1944 0 obj << +/Type /Page +/Contents 1945 0 R +/Resources 1943 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1919 0 R +>> endobj +1946 0 obj << +/D [1944 0 R /XYZ 90.925 770.89 null] +>> endobj +1943 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1949 0 obj << +/Length 1192 +/Filter /FlateDecode +>> +stream +xWKo6Wf "HYl6lD[ʒCQ񺿾|(Ћ9$y|0tt>L~XL,cgr4;I@#gQ8?ݛtQYCwB_siqrP))iZ(mv]R6e=߶~3*}du )c8x:Bz_zD$O1m9(e%c84uӫ)H)e4% |[tŨfn1!;%v4 lSS疩seճ`$kz?16;欫>1F̓m `1F +7tΝH٫|FQϏ+%ȴ_6 eYv +ArC^|jvr,u3%kI2Gtgc@f}!=v\o!~гV6Dh1D=*+idɂ$<|Uom奎HDVxx'2'29["Qa`}hSt.+[C6PWSM4q/nSbʵk$WmI+А2Ͷ"r+1uB4:hpw^k9 }ArV~^=RW/51i U9H4<< v|ꜫQJ@f p<!oo]1P8wX,r=(SY:* %RܛZtpbƌV{}4J)ӯs۱U<3/Et0F[NpL)~I:hrb >+Q^69.m/ǮH mid*p`j&70 +endstream +endobj +1948 0 obj << +/Type /Page +/Contents 1949 0 R +/Resources 1947 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1951 0 R +>> endobj +1950 0 obj << +/D [1948 0 R /XYZ 110.6 770.89 null] +>> endobj +1947 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1954 0 obj << +/Length 1603 +/Filter /FlateDecode +>> +stream +xXKs6WS3B|ة3MƜ@PĄ"Uw)dO` }Ű׳5 `GmGkS#J/v-22_eEsJ]z?GofWAv \#>~aa`<(ʍ،X́qn~YWavhs+C2\|sU4^Ţ ϲW8,׺ͨoPB*^HDV5MUBB+Ouۃ/2q1yp[ O#{^sqp+CId8xoK{ȗ}~mVTњ# 4 !e@ރ&9.`&af\rbRoۣb'd؎nX)J4@K+ +\ŬE)_ Xġ]۱/ltXMp&C |v8;XfC~o~(y>4 ǣ"a;{Tc]$/"M?b ۩n``*űʾW}2fEAy*jd|l 5qr/5W>'"= =!;1ztҩogڗBxv;~7'${ڢ<VycR1vNegk#Q6P\3`X۷˘Z쪛F)3}f>t 0كZ\ͮWƘrYJr/`dTMU@ C*71V('ePRM+oc-Rl5 v#`hYJ%>4)XTW i*[x:ƻ3Y +o'^?O1wY08BS̨;|\E.l\ +endstream +endobj +1953 0 obj << +/Type /Page +/Contents 1954 0 R +/Resources 1952 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1951 0 R +>> endobj +1955 0 obj << +/D [1953 0 R /XYZ 90.925 770.89 null] +>> endobj +1952 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F14 1207 0 R /F31 899 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1958 0 obj << +/Length 1106 +/Filter /FlateDecode +>> +stream +xW[o6~%E2!M5El<}- *E55"勢 Hs3 V ~Fo/q$ ! ec +p3 Q߳4$p0L l!4&|>lu0@A@`Ff`I،>}An} IܷM@ nG!pD`fwP8^m 3$unTk~QSd!*eQ/7IT)p|BGsrf6ߩBRXE{ SB/! W+_^e !1v $fTEɕ{b)Ղ9},j giBUk)_ +(\Dͧ?YOON[Gѻѻuz +7~ÿ}-89MyA.>"\d>݃zP|џŽzYJMUo~5v!m_u1IƟ! V}`"w)eIb^޺>ic"B̭! ɑmUrg.lœEg_o|(A0&n uC[p u.!@n 26.uC GCKXXIqSg[ԙi16蠕("<܎y͐6*s02u$L@H|2/y +endstream +endobj +1957 0 obj << +/Type /Page +/Contents 1958 0 R +/Resources 1956 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1951 0 R +>> endobj +1959 0 obj << +/D [1957 0 R /XYZ 110.6 770.89 null] +>> endobj +1956 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1962 0 obj << +/Length 1029 +/Filter /FlateDecode +>> +stream +xڝVr6)p聜)ѩ*ibs&4\IlHBAn^el7',ŷX7եȋBxEyH賳Cq4=wعw.\BW[Kn'&DLjx <{s?@I1TݽC:4QL9|`q6g}C+9~؃FD~-;(We]` wb윛ejhjFrY 4gf*%lAn \C\xi8[o8ρo}|B>XCN#5`ZP7#2xWE4ڬ5lY矝t7Pyscţ!pOgUf<.H|1>mtkзKL{̾c$~q:l؞wJ[(mHZے1K%>O"Mu,k;}uIQx d%ҹs7!sCE+P=+y7n6sI^uQMU(14vo5U#[6E9chCEP%+ `,|caTh}Bob)Jj*P15'}u n,îR2+F:-Z߷X +f /YFaQSupjМB1@,׮U>IWMK14Vq^@U p.a+*G7TZi˱csNCrbI/*/Ϫ6G2T5 \ArtೲΠI^UDSyM9D=57#m +endstream +endobj +1961 0 obj << +/Type /Page +/Contents 1962 0 R +/Resources 1960 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1951 0 R +>> endobj +1963 0 obj << +/D [1961 0 R /XYZ 90.925 770.89 null] +>> endobj +1960 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1966 0 obj << +/Length 738 +/Filter /FlateDecode +>> +stream +xڭVKs0+t ,:&uy4fC١%""_68@N/oz }س]Bױீ}@۲XMLٍٷa}7]711=v1n|㷁%>C2CѸG s힀M#X6D@ X T8%xb;`F8Ds;9 1/4xZaΨ(|T>SEe/}*L<)?L@M-*L52 .tck9ց*x9 E>c#偬 +5juZN@q&E^Y}YEL/(JZiBV^Μj_2mOi3֥B42eY[uUCCn |/^ -@/JƋ֘hqPo[I2ղ9*fȝV|&)u4 +y'Q69H$xvª_i gukf~9ot%tE["xNgenhv/)9.6~屠 SY*tEWfKAw=Ni# س7 a v%T_{ejb{VWF'ۡRtm*X4) P] dĆu5yJ鰀 +endstream +endobj +1965 0 obj << +/Type /Page +/Contents 1966 0 R +/Resources 1964 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1951 0 R +>> endobj +1967 0 obj << +/D [1965 0 R /XYZ 110.6 770.89 null] +>> endobj +1964 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1970 0 obj << +/Length 2461 +/Filter /FlateDecode +>> +stream +xڵr]_SsKt83I&9̤yȥ @, Rae8ͻ 2l̘Q)I$-o)8' MBlbXvBg|7g73  +)&q߾0bFgrqfΫͿoG:^"a 11_m8Ym8jMq܅{ߪכreCZSc7u.i˲Mij^6v:6ASdzAD˺A 2QP*Xhc$`rN)NS#sp̐as:LnUV1P"SȂWRr{yW_ӡ(VN @01LL08^#jz˦#VA))m@Oࡱĉ7#uJ`]FhHNc:K3|Ez~[ە1F"Xm֮mՎ 8pĢQ 1{MAɀȔO֙8sq rci x(۲R-v>D̦@4f]4E+[lpUWskOmMĵ}K8{ 3n¹.p@2NUޥd{5Ʉ&2Al3f1קqa`I_/88f"a$15L +#EP!T>&R4H2=.j:319[75P$r/gzP4a3@ !s`ʷd=m zcdHrC^%h" +2SA{6в |UBJ 0 crwp + Hg(Lw ҚsH윷@i޲G0z+ưyB]eFg 3R# #LOQ! +lu=*6$ET\QuۻmPPg, 11!#P}t /C$~ Mcٮ#"U@k$Ds'Qtȹ/&xCSc#kcN00%넞ək %!N}&&؝:uwwG|ֶVc0r<=O(j1 +QÜj!b&r^HC量eNhaz ϡ+b*!bnNJ{bfgG@3iH/LS G<:Q@#='22|(G4'/m Pa:w%p{s ~x1;[ E'qn 9w&0N ʳ=y]m]*xK W./rF zSĹQuNAC\ nվ*HkH~Or@%Xtǝnm7՛͡yz<msw";.l +˧d{Nq>'&\w(U9 Ğy:iĄ<'фͅ\cJI)ōQj_?:$k>7_*RM[oh=FÎ30pM]ؗl͈qPSnS H;ɚ-u- QO){y_Ԧ ;6rO(N9QHcsD:tNtc0s>S6iA`k"WEm!Ǩ# 7.Zc/qެb=_{_˕EhQ!`}z~\HA۱VG}܎)tʻ7GS )"BwMnw׫ݢ\nXj}y?K#%uzz< 3HUl!N;}gI5yr4JKq ş g+h|Dj~6?(@BZ*<0AP .=DM Þ[˰%`^ptFs 4fF!9 ѧ`TCj_ q{q1wxÀ zqFfR-l =S!?Dz ijO"m $r Iϸr\N$I^j$ +endstream +endobj +1969 0 obj << +/Type /Page +/Contents 1970 0 R +/Resources 1968 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1951 0 R +>> endobj +1971 0 obj << +/D [1969 0 R /XYZ 90.925 770.89 null] +>> endobj +626 0 obj << +/D [1969 0 R /XYZ 91.925 661.805 null] +>> endobj +630 0 obj << +/D [1969 0 R /XYZ 91.925 217.81 null] +>> endobj +1968 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F50 1198 0 R /F69 1807 0 R /F2 1201 0 R /F31 899 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1974 0 obj << +/Length 2232 +/Filter /FlateDecode +>> +stream +xڥYs6ݿofM7v3M馳dkͶ3ih PJQuS#[/ } G~xxQRIeQ% AIXEfoo +<# c!f1O9!dfy qD( JOqoDTE&!8</EH"QbN`| Gq<1,FSO#D> ++l:v+Q|rfd{s"f̏^mJ0\> eNP +H{.󘊪wOsDl/]z˫2]R=bɊ=5Uho.` M^.C"( έ bB, G+M!'ح9KfAv$Tm8T݆d]S䄝xܺ@F'YgM8J8h-/D͚ JYQpKZGhXfbڭ[f[˕{۵3#&<--7B sj(<˦ΚɁ۪*% HDtGc1UĠGce_4WN4 .(xmLazv7qܒ7PϮ[rg[{XZO>W_ײ2:ڛ =Υ9-໪(ˬWť|:/BQQS)~ɵ͊:B"l<~x?v Qd|M0v+#rtV)?חW9 'ҩ˕ۏC41ǫ2_qv哠' +쨲*[?Vm8ͶEUmwPt`.MzP`d +1!Tn L + +,f +*g}JqKmqY0V *m\$pVz}ȠO :'<Ȋm@!X.ӓIN"09t`,``14>>cٗ +-q*!݋C15.5um +gClmk&:k!DܖՅ9rE/޲v+ 0Kqe &dsn4;.B̼Y[Mlˆ&hӊDzɾMuKc˜ckBu og&{F̌}sgSbhP#R-ʹW&:R(cc;k e ߃1 *꩑ c]n`J@Dd`1MԄ1PJbb<9W<IS$I|rAmpIB&S13Ô<;ՉSq$ f@ /#z?!J1֟k!٭ CBb33 s"$(,BsiYnitD4I"$ 1b +ܔ#gH=sPRP/ؠL(}ELTAp:Ox\br)q^c G2rA <Fv1'b:PIyCKR~R@>"AF0SڛϫĎ d5_QӳgSqtO(0NR& +6?>7׍m[g$|rei_7'nVnv[\o>'*Ū'ɤˏF;T?o4j}.z4zڟ ;ݞk3O.eD\m%0qjN3>|a,R{Mgx|pib-s75M\9iVY$!`gG'k}]ޛ^Hl;f'rnijh>198{W&t7y#~zǸW >\mZ<֎gdmont[[>LƋ3*5_3]\ xb{Q1!7IR>IGw l^ +endstream +endobj +1973 0 obj << +/Type /Page +/Contents 1974 0 R +/Resources 1972 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1976 0 R +>> endobj +1975 0 obj << +/D [1973 0 R /XYZ 110.6 770.89 null] +>> endobj +634 0 obj << +/D [1973 0 R /XYZ 91.925 433.448 null] +>> endobj +1972 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F58 1221 0 R /F50 1198 0 R /F69 1807 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1979 0 obj << +/Length 1296 +/Filter /FlateDecode +>> +stream +xڥWIs6W03 H{r]m&IUS;e`PHn}6J8M.ۄ{{Neyx +) A1%^>翝.`Fc82? !~~] >'넀|/#(7hj3 {k{af)7^DC96CLŐĢ^k˭G9`ތRE f ~^]+ņ5`-<8fv\/f_[* V<})e8=|1E2B Os:=O҉j uRvs)~ξޫ(}gHO͌Q}_RCEJ+̮;1˪bEm̝3,]@_;.@Ëۊ9= gkcyXNHZ uR1#{Xb#dʕlyY^`bĥJjbF C vfJ] JshO*;CRlZј X~X[@d 5$i`6{xo4vʰV6 (wr&j>5ӔaVQkx܉^E. Eryшؘ50wkkYmlJ4:f0Finm5QC7FRmϧB3 Rf;_m'iSSe,MY%z?<EmIO!'uw_:[K6tqo/m_oRGHb';&LEΒZT7iYRD. +OF-3Mu}>F1hhx-y4B) +N~DТ7\ߴ"U|D|#f3(Rq bG+)/cni) w-`M> A>A1IPJE?~0(#Ձ'8z<<)п ( k'{ke%Bg.F5rsQv(YU(kUi.3]ur+^UV[sSHpjV?(00·8~ ,F+I0#$9׍PטDn]Z^k6ދ8M \L$ {> endobj +1980 0 obj << +/D [1978 0 R /XYZ 90.925 770.89 null] +>> endobj +1977 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F58 1221 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1987 0 obj << +/Length 2399 +/Filter /FlateDecode +>> +stream +xڭYIsW0*n$'yJv<)PȖ* ɒ8'o5M;y8Ȓddq<1YX%__qqqi6犦L\i~^2cſg_\,Ns€&,ɸJ2,'_d_JDfrH.U't#t?hX\`O)ބ_MW4co6u/#&\Qy(_mp:m|cYo˪]FUo&o A4EjSu:ΕJvhc\k:xى3֛i{?(]$|߼.\Ց۶ +pg0& a6 +$4_]MflTڀhdx :yBP~te^rz8;HM3%846M ºWq>:<בl8x\pt>me`VL.vݞxln'o2 mQE8 sSu"8%x$"Kం0&_.á)Q$Pu_ZCTfQ]dBOrvJ8 E9Bަg{WPRjr(waS ^mCB978CW؄FXau„u$-HQETY 11z㚪GsJn&8; `xt+Tf>~%ݔny/I]\V6l-Mx3Yl^w~% O7$ Lꏤᯏa.S74ݕb 4sNY߉1uUĉ>zXn=?]fai]))60^3vXn^H1R1δm N;&}˭?Ca?3io qn {d7Eq_l(]1~o.ӕ{-..@ oCUMZ .1h7aqU\,$Hw]c{/Rjk@&pPFڗ6٧3ƒ &"؞[Kf?]\FQmz[k9FX5}dA]#͇\#$mM{T켎cm7i #7EmKW.EPHr .z_3jwHe$[OttW&mz*c/[tKȹr3tilC =؍JYcZв{ +endstream +endobj +1986 0 obj << +/Type /Page +/Contents 1987 0 R +/Resources 1985 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1976 0 R +/Annots [ 1981 0 R 1982 0 R 1983 0 R 1984 0 R ] +>> endobj +1981 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 629.725 102.884 640.629] +/A << /S /GoTo /D (chapter.17) >> +>> endobj +1982 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [127.173 629.725 144.109 640.629] +/A << /S /GoTo /D (chapter.17) >> +>> endobj +1983 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [338.611 414.831 423.867 425.735] +/Subtype/Link/A<> +>> endobj +1984 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [90.929 195.055 176.208 205.959] +/Subtype/Link/A<> +>> endobj +1988 0 obj << +/D [1986 0 R /XYZ 110.6 770.89 null] +>> endobj +638 0 obj << +/D [1986 0 R /XYZ 91.925 689.9 null] +>> endobj +642 0 obj << +/D [1986 0 R /XYZ 91.925 615.031 null] +>> endobj +1985 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F50 1198 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1993 0 obj << +/Length 2243 +/Filter /FlateDecode +>> +stream +xڵZI6QKqSd΁-T4%Qb`Mo& M@/T)њ)q8FH"*V|w.KLfoLy:_&>nj[=70o G!v?M[8.gXq;>7@]a$ Q/y&zRd?%9\9 +.ji6i釞= JKbdn_6Xo<1&x?~Uv&֌}*p0sr:4F3}f׼S>bN_::ς,&h3d +|8 +yFEP-V9ND7{<Cz ޤˬFx|t`+j<"*YdUv/E\%Y+0߅bBBXjabkX"ATE57?YD5>RʷY:_BIBބ槔nC2N=1og-> +x-}BE`4/E˜i^;^׊~Yi'wROcӄ% Х%!dy'MwD:T37'"Y'?ڡ 8b(DAHG4񛙨#2M%+ 0}' PM!θ<"> endobj +1989 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [138.847 98.542 158.274 109.446] +/A << /S /GoTo /D (section.14.4) >> +>> endobj +1990 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [182.931 98.542 199.868 109.446] +/A << /S /GoTo /D (section.14.4) >> +>> endobj +1994 0 obj << +/D [1992 0 R /XYZ 90.925 770.89 null] +>> endobj +646 0 obj << +/D [1992 0 R /XYZ 91.925 733.028 null] +>> endobj +650 0 obj << +/D [1992 0 R /XYZ 91.925 376.45 null] +>> endobj +1991 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F14 1207 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +1997 0 obj << +/Length 2344 +/Filter /FlateDecode +>> +stream +xڽZIHׯRD 1qGtU9tI4%yL$(\$H-dKDwWzV11,Ҋƒ~>zo>'Lx"}{Ώt;浿8d՛ן>y՛(FƖHKk.hgF$Dꙏ`<&\:}EOkmIpJznW,Wx.Ǵz_DdZaNP`ˀ9MdA<*|]Q%zP1.m& e34K Oi##%8#]޲׀9&b妨Ro!UYe6w%@vyi9Lg\(:6x6'@зŬʊX +9AJtB"-my2,aJY,W܄oYfi^g?gVS,B%!ci=^ƂDUZW 4C:.nt+%zH4my:٢%Ơ5b0do1u +{g|DWHcQ%߻X,j D66= PH$baxO]#)D,8Jp]R(fbcWձ ,DV,+!vd(˅Q15B.$isayLqEIkb%'9HnNdR,UE%!bi(ښ5.4ʷ1: +JhbƷ!(cЄ!Pz(F|!`.LN&&.ఌ"dN'!EH\j +`̉K1ɽ-C9l7geՓ,P1*P<bP)+H,Q; K\X}U,!Г~Eۅ- ̙aD@pN-55Ш11HN 4-A4LN$ZD@) a5VC1k>y=ʞ3\C0N~FnlQͳU;1@ʈA=aOa/&8S{Yh}jDQ~FxPg~0`Ey苚oMR;v5_*)%IԉB#G*uYU"X18h0;̚![Di= dÚk5 +D4a}+G4ݾPsee_O,Is`=^o"nրd"1jc}SF'CjWu!:[dJV./|qDgiŪ yL:͗>$L{, I<#e:P"RAjGc| CˍǓ:;ۏ}8~Q_~|9|k pϞčlA=;|'8‰.$?;_@WXI^()Yٚc}vsؒ,IhȨTd[5F +endstream +endobj +1996 0 obj << +/Type /Page +/Contents 1997 0 R +/Resources 1995 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1976 0 R +>> endobj +1998 0 obj << +/D [1996 0 R /XYZ 110.6 770.89 null] +>> endobj +654 0 obj << +/D [1996 0 R /XYZ 91.925 633.287 null] +>> endobj +658 0 obj << +/D [1996 0 R /XYZ 91.925 316.774 null] +>> endobj +1995 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2001 0 obj << +/Length 2672 +/Filter /FlateDecode +>> +stream +xڵ[Kw6Wp797̢u69ē8Eۅ,ӱ:R.Jd ɒX$^w_2/>o/UYw%,HQ\ p$ ͆#co.?=~xWPW_|v3y!RRǜ2xqqq=+>%m 5Qjc`XW$ZvF2kIѻ/W3#|aq[%fuڸ^?>.:3Nt<,b:H^|2ӬԺ $=.v^5n>ډ#e|r=t_ďUZ$bH>MS7Wn+"Qna5}8qޡ;&zFu27Ɵgd)u+2LXVzj~yݍcCg_9s )\FnX 95!j2/A5"]U"2(ˮO⦊uU':~qQIƳjh ϳƂFeZ/y/T5˦z\9Y\𦴕1H,C>z8BX(ZUlZyYM"C*^q\mHGRPb^h H7;wn&FS!Iv[,BrfK:ޒ.*)+l =gީhG;2l'/J\F"bGO (&Wox`7GE|J#:/ UcAr +O Bm#|p'rĸlS09qRe +OIxƅ:DiMsZ+&ی؛uoG^f]iD$;`/&F]PiP*{Si4yv?FH eko.UwQkL@2LTVڻEzC"r&.P>ۂd  T?(*>I;T5fnP7nxrPUƃCI@ /RAU-6$$+ҨȐ#%ݡ[3=%Ef#R)(=x)jwbp>+QM0 +KR4h6u*Wk=KcQ%Q[D *uT1I*b$ ^ѽ4SdUBSc´o7CPP@1[pB+J/[.At o¤X +NdтL^"@@DNdaਮPϝY "(<^6 TZh "!BJd-u8PY2e:]x~yz3|_2!dLS4>Hhk4[ʬ91:o+Jo{ht K$b(chP(!uHo(:)2zW^GssI +*woRu =F)ՙ0w/R鄪i6*:qInr4ye=_}yr#)mPmFR_o7'e>Fqj?I:#{9ٷt6#NatCr`tjrYUq-:5۱.Vw!HQ`fKwh6f(7haAnAo& +\H1TxHګpJ<,T.͒M~:M(54ΡSb ~|,4~i +vǓIJCQ[n4i*̐45yhygM9KP(;:D*y(hާYS{GfwlAU8|$9d+ux)\:g\Fk4j(!{ϹPqRN9%+7KC0!>T҇>cN7Gt5<ެw]>^"%{4V *Qi+i#=hh|;^͸}M؋^& kihx 3<2ԋ_2-#Ps#).F=fHh  9i0T3u7e&:PѦOӈ\JrٚL#4d$'5iϦ8T;-pSfR\G:NC> /Kl蚰uaF2u@~PL oIzK4"QMGԶ}֚X~B$ x,g\d?B R酓7haO ֹ㸆rBJq}~ḤoTϖ0%3& : %? +endstream +endobj +2000 0 obj << +/Type /Page +/Contents 2001 0 R +/Resources 1999 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 1976 0 R +>> endobj +2002 0 obj << +/D [2000 0 R /XYZ 90.925 770.89 null] +>> endobj +662 0 obj << +/D [2000 0 R /XYZ 91.925 585.267 null] +>> endobj +666 0 obj << +/D [2000 0 R /XYZ 91.925 260.276 null] +>> endobj +1999 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2007 0 obj << +/Length 2601 +/Filter /FlateDecode +>> +stream +xڥYKw۶Wp霈Ń#=]i=Mr]$]l"U3FC7L&`Jƺ޲Eb5:Dw 4k IGcL4k@@uh{b)-0P c^TusR<<- AԕF廒gC\( n%mW,3L Ի >*]}".LX"HhZfN|v&I98 -X+WHZ]ݻ9BN[&HCj_bI3%4R~*$R,D +&wRa@S?c 69}n5.Uclӻ5W}FrP}J>D*0ZD i tuKΣb䚀8Į+*Y ov,V/FSQ(eW[k۴{Q#d~'SGOpܘı?ؼ<8b 60AL){eo^eT(y^.m 9E/g1VRa!sQB2e=FRcLE~pwhr67cr%9RQ6neC#7oa9:K.R 'o&:<GCTx֡JDh!:B8ӵ+3 +S LYL饫<&̒PqƱ_ Bѭ,j +F,{Z! q E5,I+ +`J0P65K# 9H3X f̎4CtN;tFr3D#H|6 [R%G@LBD0aW*R,`ߒi,*A͎8@IJ(}MhcXͩ:@8>MlN$T "3)!*z+ 0?kAK81$Xp2wuCZ- }々f;qp"L)-"}?&pHa\|dNu0nq`RyTp` 7хZjigcp>cҧF 5((rȅQ6N?|!{h>g @2ɾ+)E b|6GQETD*(|P+:8q D +8+ڨ!sœaO.=|؃a|FShѐ\Ȉz{3;~{ \y!}]9>sLG#-+ǃoSHoOJt^H[o6=X㳭Rtfd:rNMSwPt> .܉=jV9=cC;rM~( +;ztv׽֡h>0`"xUZΖyutu^4yKiI6KçJSRKT_"/hIO|SK3""j)΍@rB~ܽ(wGiʶC[ȑÐ{h"ah^wljvC{\#uxL9}4.N!1<:][fXswDbP+%F?;Fo@p#ݤh%fUe +endstream +endobj +2006 0 obj << +/Type /Page +/Contents 2007 0 R +/Resources 2005 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2009 0 R +/Annots [ 2003 0 R 2004 0 R ] +>> endobj +2003 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.078 599.763 361.977 610.667] +/A << /S /GoTo /D (subsection.14.4.5) >> +>> endobj +2004 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [387.11 599.763 404.046 610.667] +/A << /S /GoTo /D (subsection.14.4.5) >> +>> endobj +2008 0 obj << +/D [2006 0 R /XYZ 110.6 770.89 null] +>> endobj +670 0 obj << +/D [2006 0 R /XYZ 91.925 324.081 null] +>> endobj +2005 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F58 1221 0 R /F41 1063 0 R /F50 1198 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2014 0 obj << +/Length 2263 +/Filter /FlateDecode +>> +stream +xڭYIwFW=r{spɡ%eH I47ɋ"a)qjqG;"pwbO ;}Ň˕7s^|n-?R=5|)~~ng/~?8N̽XN^(}g=7s0<G΃Yu +ڙs{3֕@t%h0qC8nR2Z| 殊]R&[]벢*iNAR :>-\Rf6 K 0ϱ)Ƹ{]V;xA:JbKpA‡Ve(HEԃfwa#:¬ץ* eR4].3imbB֨! }N YC4벪aN{3wY^߽h首Gn$lundWF r2lW5vĠ2|fvë ^FqE\|L3e& ǪOĞe{ ֬j!F= +֒HaEX{.тfִdE(~:s5nCԼ{^C8o0MbݜboYPFMS{S5nwYMSV )ힼ[nW5iYa|n6V>b}fA4u`T:0Hғq#Z,4}+*)mUd71id%8>؀aU]c6$gs@7(Eu DPzJCГYwy፵Fw :w+.gͷw{s`EeIp:7s@H˻!+C~ Ac  +/炒iIUtXSC }/#g@"gYTEΑ4( +AӨ2HA8oEԌGtX~u1fcDSeMZ=G4]MŘ078(!K)>Bqղw!B/x) +O(1ZCpus|/ @/S$4sJ8I%{$}#"/)G"!{ !77ńC@0oH79D %\C>ꏤ7!x^wx9^.DGxO<4G.>hHBqY2k'}\ANzShRSܱB+N^qP{ ϵ*nc^xDʉ>!CR'n#@I/։ueZZIF:orC|NOBAT)-xECZ%ZϱS'{W`Cpr 1*5,,J`]Ar+-ǁ3tt#REHF.u]r/MV[wo'$Ԍ8ڤ{GJ}˒ɨ^gj1c`4:v+~G J+DNV\ht{MJguNQn䢝 S(7!-( _`"9(G߹CNe@pgSֶ՚1M  "4i#-4` nklҙprEuܒK,]lu apcuv:c _XJYֿ۝'bcK'֏V`SE-MA mSDƽɴۘѕߥ00 (2"rwmK !̢nU\FL#$]6]!2eR:h,_U$1Kgcu^.KŶԛ˗_dLkH'K?_>PmPzXWoJؿu5+u5XQ\1T"l(X +Iq6U^Ľ=4d +endstream +endobj +2013 0 obj << +/Type /Page +/Contents 2014 0 R +/Resources 2012 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2009 0 R +/Annots [ 2010 0 R 2011 0 R ] +>> endobj +2010 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [338.419 651.768 365.319 662.672] +/A << /S /GoTo /D (subsection.14.4.5) >> +>> endobj +2011 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [389.093 651.768 406.029 662.672] +/A << /S /GoTo /D (subsection.14.4.5) >> +>> endobj +2015 0 obj << +/D [2013 0 R /XYZ 90.925 770.89 null] +>> endobj +674 0 obj << +/D [2013 0 R /XYZ 91.925 593.826 null] +>> endobj +2012 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F50 1198 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2018 0 obj << +/Length 3431 +/Filter /FlateDecode +>> +stream +xڭ]s6ݿBӗg"$ĉt\KZ-^%R%_X2V'31vff?<\\~/ ٜtS6hg>}o>/?]t<Ʌe:K2g/ +~DfvvngJȄI'lL# +81 ?H5~+ G4u-nx7l˓mZ%3 u395Үm gq@1Y$*)UCptسzŲ+fsG@bkA2o]P&g +R=;zA+MѕuE7\mK8lbY]ͶX`&T2IJ,ULi5k<ﶬnhSM^.ܺcἋ0miu V.NTO/+M]ĕF~DP"QC<="GoIg $S^E` ;DP1Bᘘ>^!*FKIiY޲.H߂־|هٖof3ilo*+ +#r5+ ,N_zHMDƜ#؞EY\$&V\%B:8j_h~SD2Hz )ذ TsDB#ݺ-!\33;OW=| @z⬖stZΒnH%ýh,Mѩ1NSS->+[u富 @"<}$]r9/l3jB;H8fQFzl>Tąb*}ڀ|5X=LuC;8ۧ+!lښF^#zxjZ67?7Ik\-;$xp]|IQO )Hs0σ[n6s) *S.|J$ǂ, 5@is8k-D3!9p,3< B 塢@'MSii`K=zr\`c> P67 +%!FDNLҩZ?;%O|lP" +B%Zgǁ-)`I%A"BL< +B?\s!0ݒ9'fA?uH~Hx™:J$B2L))r`-kb \4O_H +U +2eOb,!?PIQ # PY~,?I$ ܱ>J$B*u6+HRf ~4e.E Gg2;&,fGב3sH!?̩/d'_;|8!g(y 'K0gO)bL=C@>q?T-=C<8c_1˓9 !̳^?QR_+,<Ǘrp=m +~l=`T~@/7L:p0dI9tW,qpKuQݸwLͯPYqSﻲ +d_)gK̨&ն:0w]-t%d_T]_I  }=MQ-\۲u?ދ]=T +MW[ "j0=^W ibqk枉%>dѶMEWW{_h.@wé KW=p\Wʗ7P5?c_6+pA} ._?ɉu`X@ +-e[P,-s7"p*mj$kv |OyזvX5=~?iG +?ң-|ٕ6Fs}ŇJ_)iF>)M&(p]S4p}D.|HT"kI@lyLNXY +kanҗeGg2.+!bw)5lVِGZև:~S(R 69筆`lv--WLxGP41CiFkؾףl,릱-tq(TW9EtBݫztQ8֬} 8A] +;vH,ILD'|gh&Gsx0[,#\yxPʵuD +m1 Y1|G#z*<5r'N=ӫrSvw).}Ma*UX6CO{ؗ@{rBU3x^+-ry ,T[-i&:K&+8 K\GL^bK.,Ūܧ P*T6AyDO0>¥L5 :xӲqM;^ 8Čs x T2$'rXQƒepo`N՗|.w6\0oA"P:Pe˱!I,uCzݾǸ }#O1k)c]/Oj +endstream +endobj +2017 0 obj << +/Type /Page +/Contents 2018 0 R +/Resources 2016 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2009 0 R +>> endobj +2019 0 obj << +/D [2017 0 R /XYZ 110.6 770.89 null] +>> endobj +678 0 obj << +/D [2017 0 R /XYZ 91.925 538.171 null] +>> endobj +2016 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F50 1198 0 R /F2 1201 0 R /F31 899 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2026 0 obj << +/Length 1724 +/Filter /FlateDecode +>> +stream +xڝrHT$׏sp989`4BA`{zzabKIB7+ M\+ +Z,{ϳt–3?ϯo>͜>n.hs{7|mqr|H.,i%IȉʶoZGK8^[skχ}a'Mkpj|@a@ +(%, t2o\=-Vz3`n*S}Eu~8ʦ%bH){P|ZB=U4UG[U(o6FWˡ4 +ҩQu2qO\$V~@yQP<=:N~tC%fjY/6yCl&W@с֥jutsƞKdQuCYZ&-v}v +4Ebϕvv**H3ĺxҼ"1-V5˙ܦ-JD 3f0jiŋ {Bڅ*ךc镖] +A  (\bɱG 3 obpC,S0ev^K + E9Z) vhZ"9d]j"1/4l0M!ъ4 tae"tUmwAdbܢaq%Uh9B9I,O}!k뒹$s|X!<}B[E~PpxÂό5NLmBNc/̄*^ +.kL;e( E  %lT3aۓVW%(!hʸU^i̓GJ]{&BR$d'C DxO!YÒr/](ry(%M g箥"(~2܏eqv?9s 38 R5~k~=6\It+ )h0Ә*=DeՎ 0ʍ5~jX v-׉`BSzIaX4nĞaUE؍i^4Y#y8 C_u> endobj +2020 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [310.361 489.844 337.26 500.748] +/A << /S /GoTo /D (subsection.14.4.2) >> +>> endobj +2021 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [362.29 489.844 379.226 500.748] +/A << /S /GoTo /D (subsection.14.4.2) >> +>> endobj +2022 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [338.883 445.61 365.782 456.514] +/A << /S /GoTo /D (subsection.14.4.5) >> +>> endobj +2023 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [389.382 445.61 406.319 456.514] +/A << /S /GoTo /D (subsection.14.4.5) >> +>> endobj +2027 0 obj << +/D [2025 0 R /XYZ 90.925 770.89 null] +>> endobj +682 0 obj << +/D [2025 0 R /XYZ 91.925 415.737 null] +>> endobj +2024 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F50 1198 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2030 0 obj << +/Length 1573 +/Filter /FlateDecode +>> +stream +xڵWKs6Wjb3R:=(8ӱUq;SE$e B"C/c(ZXe)|G^d%sˋƎ78bN1+Y49zkk{߯Β[\N>dz3 \Cmp 0xݵ5f 8t5pȾYGֳ>w\?ynm ֲ3Yh@"V4r]8{72P$3+ F5[, H0p&5:lwoH}'Q8UOL.(fZk Fy0!Nj陚x'jY;y-qVʺsF⹒tUUG9."m2Yplj:KbY8B<;Y{꫐Ǚ,hc]4d͒TXT-yKZu>>\"hOކ!6 cF ~673ڇ"M)WOxMp8ĹTi$b\TVzӺo7^U7=Z̗JuYJbXt# ;vǶ_X2tQ[ #$Y4lW i9&+D=!]{ܠ3M׺+`A9!@gĀbD%H!d[Wi fZ$6VG +\5UVICeSlQ2G~aX?pزZTSJb}XZSe;^:[9muNR@u#> endobj +2031 0 obj << +/D [2029 0 R /XYZ 110.6 770.89 null] +>> endobj +686 0 obj << +/D [2029 0 R /XYZ 91.925 457.994 null] +>> endobj +2028 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2034 0 obj << +/Length 1054 +/Filter /FlateDecode +>> +stream +xڝWv8}+Y3$if- +xƱR!ߏ;9GlmY +@tAxL7f`11W}Uo`:6 BΝ_OGr:̮z62.G/Wy.vGtxг|!bkVgalӂȲY?Ώf`Jز#3pr2zBjb&lͱ !tvA~٪!AĠ 2`8\DҕXpnV`]i!'XŦy"LبcFde,:څT9> <),zI{.i H}z,{7O$-$80笠g:ƖDnRiGIfImCsu܋!kHA/h›("6KLQ I{ ݽ#TsBqQasa 5U"3j"&:NrY$jB]7+D{ +eȢEEŻ-Iz򫑊n']Ԃd3?$Wԃu;2 +6Ҽ_F޵>o֕LjGe@e$Y5ȡ! +endstream +endobj +2033 0 obj << +/Type /Page +/Contents 2034 0 R +/Resources 2032 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2009 0 R +>> endobj +2035 0 obj << +/D [2033 0 R /XYZ 90.925 770.89 null] +>> endobj +2032 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2038 0 obj << +/Length 1838 +/Filter /FlateDecode +>> +stream +xڵXYs6~ׯL5# x'әL8-N PI*Hv⇾8bۅ6vr]8YO}cԏ,Q#mˣL{lA=bڮ5[x>1n/-Npp}3svinr5A;1l#zFVxF\L?#w(4$eaԱ87n'OH9M+ @0`ɛ6kg #x:L?~#a Xܝ/ߞ۶5(<.vkkpnKI=[~ڞ_%re~/0~N^c[qy.iΚptAԵll`[W1Ovfr euհA*SЅB&DN߯ԧ&f;fB;o.7Y3kH̔ǭL^r@!qUBU_D_,Vgls(wJ۷'ge ċp@Jl%>=+AQA4 H/ 5+0TE*Gc! 8V6GhEt鮌kd S ~8}_;~_TR]h `֦Ug x!_%dbʤ 5&h P1GGH}&ӕYU*_Z HdztWR4tax0axZJ%W0vq˅aOYtRwk",2ve+QK~:tf^U_oS5RVȒ dWy!k J{aJ~G"1-qD r\{@Ov5(uu(hX]2 ?p0RB$Tw8Y9 nf|YQHp޷wPlFp &S9Я5?gqi- )j_ +Ҿe>ً'_s<1K~U9 ux]p>P8I|ՁPitRgfrF"F-77^f{ + Q !\UF#Qo +S,?_"p0ɇtL +SFtB@MµάLXT9ɕgԳBb8A=`4[@bnKp[`_ ++jض A|/g3ޔvE BER;1Q \5TZçku~h˶w[%\Ql ZBeC-;Ts=_M +endstream +endobj +2037 0 obj << +/Type /Page +/Contents 2038 0 R +/Resources 2036 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2040 0 R +>> endobj +2039 0 obj << +/D [2037 0 R /XYZ 110.6 770.89 null] +>> endobj +690 0 obj << +/D [2037 0 R /XYZ 91.925 357.92 null] +>> endobj +2036 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2043 0 obj << +/Length 1556 +/Filter /FlateDecode +>> +stream +xXKsF WfjdrJ;u'㸶<=$90J"]_`JL7j/,^ |)#W~$"ș//Jx=3{tUHwWil~ꖖofH/QNDⅎ~,6O_/~;r/pn'NdoA/D!p]U *m+caBM^tZ2Ƣ煩іS؂ϴ[!UTif2ܖx7DV;" @vtG2o۾ܫj );d3wUЪ1iX劖V<0(%-Yed ,Wf4Oiؤm(Y GlJX&)MS-idoT/NH"cW$(B(*#6U5#Nx_ƔnhLi_h/I$T@,.b ^N+wJH/ײjiDwE*QAZL[|4n5f0_`gvjpPGSY@q0|hzأñxaj+VӮ.{LTiӠ z0yrJbF*|&R2dB; 漃z|$Fnٳ`-<ͭf9&= nUʲ9ܛE`2A١hA!s &"1 h:SRB1AǴFܲGʃH!׮pC>|hD=1FakDNu:@x cUt =u mlRLuW3hw$zG/=r"bo Kvs/bd#[+1QY&K E( =>-mqt8[I"m1,!!xr Mm gua'Mʸ >KXm#&7";wSu@ 51443ΝPBG Emi.鰤(T" 6HQF#aYl.ڮn<^ LZf: [Ӵ7cq} _5 +N?P4}MCQl@Q([d\fǻ5ʽR'h,KA(X ! :"P')a}#n f=y'?5Kl %´W!>vxcn +ǃ^ɀ,؞=q?\;mV6nڶ٧:)*'!lIk:Ҟ޽J+5us+_5nہDV3,sl˶nA t~fpɝ0[ v:1h;KA,Y[r5?jDC׈ǫS#c@En>:=x˺_> ՘NB!Ecb;YPl{a,CZ}㚼}#q/iդ{- |O= {f|'ح] +endstream +endobj +2042 0 obj << +/Type /Page +/Contents 2043 0 R +/Resources 2041 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2040 0 R +>> endobj +2044 0 obj << +/D [2042 0 R /XYZ 90.925 770.89 null] +>> endobj +694 0 obj << +/D [2042 0 R /XYZ 91.925 641.257 null] +>> endobj +2041 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2047 0 obj << +/Length 2374 +/Filter /FlateDecode +>> +stream +xڭZ_s6܌ Cα{d4VmhyHWznݻ(Ѷdދ B4hѿgGoE$\GGF38f?>>O\јI2*M/W?b+|}w>O$?j짣G fRFR" 1BEѯhc?E4;e$ THhG@*!5*LZ0l&SF)lՄJ桚7E]oyhM&RyKr$, b HIn[޻%uzQF)igA<ˬ8 +QM~Ԥ,"D'ɀ֥kZFR1J) Iұay}[:,ה(J!yX7nM詰yjvDp8"994L^$C=Ty V2e})#)x"4E Y(bDJFXcAݚ$$R<r^\>oaB2+@BiҀ)J #l`*/y>if|76}D5鹭5_d* |ƾEV +>|jA`$`Qv-'S xePPT_i ֿe+l dzb V?E8f`-s*:0!t^p| N|Wn_VE$9WvL7prr# b)p5t^ZSvpu?l@Oy7s4: 9X‚Di+RЁ#p[L$Q-a0~(82kw?oǍ (T(,ʙSB7i_;Jwv(p>;pր1):BwqAnm| S# "R'.bktӁ3/\$2n\96(U@vwcRTHiؖPJ^fs}/ʲr졩w<+ǠPꗺ]nz]o!Gld~@rYG\-8Z_P }7L8}q6s8{5|܀^p,R_O8<޶)*%T{ϲ@PȂV^SX"Zmw1/^^c/:5u,oDpNXZkh\i,aw]]ϯv0~$; E}h{8/*'E5)^J )@7;o9p_E<8fzq2 d&H|}lLjCqqL8Oߊqo"$908+~$`aZs׃wZ7#м_ 4i X?3ԭ%dHZ޼Jcayp y>ݝeۼq*!$Iatlv7~*_ +endstream +endobj +2046 0 obj << +/Type /Page +/Contents 2047 0 R +/Resources 2045 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2040 0 R +>> endobj +2048 0 obj << +/D [2046 0 R /XYZ 110.6 770.89 null] +>> endobj +698 0 obj << +/D [2046 0 R /XYZ 91.925 733.028 null] +>> endobj +2045 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2052 0 obj << +/Length 3066 +/Filter /FlateDecode +>> +stream +xڵ[Iw8W{-4I&ISZmN$QCJO@ʢ IsI,64h7W?] 94]Ƶ#hFg"4yw7Og\ d:SN>~Ƿ/o~ppTɟ/__7_i2Lj*3#T6_]}f x{Fp6G2B2p+ړ@eQ|C <kbu,n=ߖպA~ʠٌk"UЙ`vbSWb L:<-y,mK]mR(<[]~_L-Ta`^|>͏?r@|Պk Iv D + /^154u#LS&߿eU/~1CeFhI4DZںOB{Pxy!e\tH{T +cX%ʚSz"qCӁl +ﳥނLsNc֎^A~^!HQuhX@e-2ss"LoOKdJ)f=B?墘/%9 +et7=~#f Vs@! lpp@'`e_kQ*Q䑛v1B|BDA(%F\yK +8tmU":|"Pu^c|bWrP"Fc8񷑘vd")7AC$rm!bJ&8]U"㪪14BX-wUVm{ýޙIS4x170\NAQ\GJC|vuW\ewuu_UQ0UjĄz+E/$~/?ȵ?ER^2 6ӢpZ8ΧIPq~_ķDty:jek٫)oe-DjEe WJIb.g'RIcXHHH$D$ *} X0!H`aAYapI霯ݎJ6N]>p͉wqݷ$p~ !S'b0{ZrТ6JÎ5W?su'ov!m-V17F;PNQ"$ۄCB{Rh1c? .0`4 +pʓ,MSDid 4Q&$|UDЬ讘N*I96[( +Y~jh" ]7-'|T yP#4 㭈 +HYBJHgdʒ\(R],iX0P+wMSS+VQ#- qvY(AeA9H6}|]ߍ|5:"7349.|^` +'qVNrs@RʗeUc`TSU` +#zR1ClOUӟesPe`{)@hd!:5_!5`vVE= 4.W{;,ۢwK4HZvTːcOś=m񠱽“9gDq(3B<Ӗe5ǒ_b/)0ʖ˱".ᐄ"ԙ$UQhрh;wH.ف(8szaae-!4uHblEe'{Cb9O"aU&HgD +TBM$Iaqk:ROyOLH0Yl77x8⨼C2lH9 h5@mp"drIQqV.!hpv$lP̺2 +cMK'MJ5G eL0NlOEѠH Af.lݐ庈CA U$HR1\! +:I@C +KBfQ8H(,2*|HXXVcPDiF7v^yNӔv`H4$5e৿Ý#؏k }msl]5<wo'JnO\cw[^.ss$[Ä.P1Q(q+Ha.ض*ע^V"mDBXomCI3QYZ!4#Sdmb7G5?vZYuR^M_D;z,(MiXМӛL&W6y(tЯnC\]ܗ6Q:|Q4(pr hJB(VXyNu 1_+vM~緽= $0F j hN J$HHV@7ĐP).D*C(XyV f t|*+~.oWM=4C 9`e8&8- =`nホ53cK@&jdCHpl;H$Cb+ )z!AHj)1$d1 Nu+Gb ҿƦŜ?G\;0$҃j\JIӝsdPBcȖ"r)nn?Y|3s3cA?ip'T'4d*;T(T'u 'V!$#!Ci:ZO1GJL‰`N:r1GO1(^T.!h=y"p&h?Lxt6no5J5շUxOE>SE?Wʖ&}(V70<oÑ@EOlӶGړfsw[ WwŢV>?9MXyh5xݿe3ϭkvp]A*1Yzٞ w1om!Oˢ!jJf&l=gӌͧ +endstream +endobj +2051 0 obj << +/Type /Page +/Contents 2052 0 R +/Resources 2050 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2040 0 R +/Annots [ 2049 0 R 2054 0 R ] +>> endobj +2049 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [433.336 561.556 491.776 572.46] +/Subtype/Link/A<> +>> endobj +2054 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [90.929 551.658 117.27 560.505] +/Subtype/Link/A<> +>> endobj +2053 0 obj << +/D [2051 0 R /XYZ 90.925 770.89 null] +>> endobj +702 0 obj << +/D [2051 0 R /XYZ 91.925 733.028 null] +>> endobj +706 0 obj << +/D [2051 0 R /XYZ 91.925 536.963 null] +>> endobj +2050 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2059 0 obj << +/Length 1690 +/Filter /FlateDecode +>> +stream +xڥWKs6Wpz15!Ol'tV$d6|| PLǞ"@ pw[,uu>~]_y$䡳85􉪆6zL;L@1jBQ(,p宐PUɦIU"Ss P;|AE_NΦۼ F:Z;[Zр\W#cVQV5v~bdJVpNNBԎbJ-p9Za4ԝ,Eta + }w 0lj۱je so:Y{k,VjR@.]4P`!aO 0& @ eSQfTz.\RǜJ>@_yrM* 3w\k;uC`ޚV[S]^YE[cħL #*;(E*qm'gGC_Jg虪1PFϜ{"1a 2֘m{db%Ua6-ZZCrztu$f5%di\P F\E9=OiX)T }ӓ;?VG§> +e"M7Fć~c=p)(J6<PL4ƅ% +Ӻl 2U T{C[@_z6eFMh/ѦhԤCkk!{N)Ë("Z׍hrْ0oxBCxFtkƉ9Gtd=07#~ob,sTz\L=ڷvrPl`naa"~ԇȫ!& x9"PX^)n}8r34C?E\L5^o[q8~v%dBHQ 8: U Obrj\\c +endstream +endobj +2058 0 obj << +/Type /Page +/Contents 2059 0 R +/Resources 2057 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2040 0 R +/Annots [ 2055 0 R 2056 0 R ] +>> endobj +2055 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [90.929 216.415 122.809 227.319] +/A << /S /GoTo /D (subsection.14.9.12) >> +>> endobj +2056 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [147.098 216.415 164.035 227.319] +/A << /S /GoTo /D (subsection.14.9.12) >> +>> endobj +2060 0 obj << +/D [2058 0 R /XYZ 110.6 770.89 null] +>> endobj +710 0 obj << +/D [2058 0 R /XYZ 91.925 733.028 null] +>> endobj +714 0 obj << +/D [2058 0 R /XYZ 91.925 198.414 null] +>> endobj +2057 0 obj << +/Font << /F39 979 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2066 0 obj << +/Length 2784 +/Filter /FlateDecode +>> +stream +xڝYK6WhR5T +=8;מkvH-u߷Cة=6@H,bfzk.S?d\2J}e~(z]J +#}yd?^߼wO/DۻW?}{uuzEeL?2c?Vr{\|U,wR*MOVRBihſbVwooU$MPY*n]7t}WRo/Fݕ6X龭ߚx*}ݙmd濭ˬ2;6i”o c;X:w-[\]~qy@'r^W"ϔ;{-a6K"eLAm)/^[%4rG2}*hq}U:?O0 (?Qbm ت^m578AQCյ;3`a'̩ɦgMB-KCᇺWW2~_kMQ4=MY˺qm|gx? G0jTqz-!,jz/O9*"h\7$((m~`({X~ta5 858J ?b:{gY>hP}X[U2hA`Zρjj ;ZSbb|$Qyg,I|ə1bGv{ 1m_mdLiD9׺ mE4 [_[Cq|?e~hF^4I_ShjCb8^8 +*H9f1]44Ng'S?Iz-kB}iIzDC,Y(|]3;D((lpt  -IQ5ir˚πm: Ⲻ>Ok֖ȍ tضZumi2_Z Q$%pgXhN v)z +vK=֌5{X@J{_ UA&T.tYo>?Jc.,0!ԝ +i0rЉTO3N :Ot>UX+*6p6oO@1Zr:u6 yx׃҅`9@J!\ClH2P$\uZAIBE6`.|g },΍ 嵚SNj`ݦ4lĠR?H^Ci\+SXOn6M*x)rkVd%7yrqS$| nQ*m|u b"%cȏ!:Rs&~x .DJZ* #WgS1ddhL-vuEK1/G$grک4СnRot_뻥MMXқH9ˉ9q|;_u p-L^PI Nrpȶd,r`?3##ʅ<Y3|F% N=򞡮q);)dd'FBkl>uaYk0o]ӺoQO&|㆕IQ!thXথVPkNr$mBωm +J2Uϭl9k {^u;dNxL2&] H ߘ1EB>_^d}꿒0Q=OǹRɁnP +Ļm/E~p KLؽ#!1f+ÏG+">.<:@gV 9-|-{T$N2w>"3ڗR>{=T􅚞bFCd0ISr0oB(FZ=yi;a&K" V 12򒌭a XҶ6V:YVX8,̨iQ7x9-ŒbîݘhOЀS#hJc*.- |l1Zq=e5xC챉b;Tuv2*=m @sܫ.Fٻ79> endobj +2061 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [254.175 612.116 273.602 623.02] +/A << /S /GoTo /D (section.14.7) >> +>> endobj +2062 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [90.929 429.875 176.208 440.779] +/Subtype/Link/A<> +>> endobj +2067 0 obj << +/D [2065 0 R /XYZ 90.925 770.89 null] +>> endobj +718 0 obj << +/D [2065 0 R /XYZ 91.925 504.062 null] +>> endobj +722 0 obj << +/D [2065 0 R /XYZ 91.925 411.817 null] +>> endobj +2068 0 obj << +/D [2065 0 R /XYZ 91.925 290.318 null] +>> endobj +2069 0 obj << +/D [2065 0 R /XYZ 91.925 244.445 null] +>> endobj +2070 0 obj << +/D [2065 0 R /XYZ 91.925 190.711 null] +>> endobj +726 0 obj << +/D [2065 0 R /XYZ 91.925 155.717 null] +>> endobj +2064 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F50 1198 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2073 0 obj << +/Length 1842 +/Filter /FlateDecode +>> +stream +xڥXo6_Y%JaM.t=@[tLT$7͆%9ua}><:n{1{=s/4J֋_]\ﯟ o__qv>{ /A%^dA'ަ5 +q,g(Xº~SN' + 9pS=yKon[=_a+?̼mVu=fuBE2] wq*Xdw͛CojΔ,9pw!}*ZSMZn ]>UM;07MM$Saqkݪ^}uw(|{GioVUn'ߑ)(%2ַSY )T\!X˝̣@Gq8%R XHRPxJAfnmx˦`eoLN3oRMlf=M fG*X'2l ZiAAtԷTid`0wN:$ D;)dZL6j]6Nlṇq\pqlTY" 녌XrL"4%֤r-QZfiоm68bl,~Zu5ޔtSj8E T/=Noʒ E`A-USa I.pl)iik9c!B89}/F0<2,!D8 +9e`/aRɉJ<{S? ,ǙuEG $Q5Y +Dz$ (;.K-N;R I5xjӣIaF- -3}X 7}+]o %Vq;f Sp@ەPk|ߴÁBBҬ[ӄ9W8đ2 @"'330-aP 5ұpb"1[*8&vF +z-msŜϓ1i ^|rm\Ƶ)M?F걞N'=䞆 :׶vʠAd|Dp Ɠ{m=zGL&|ژҗKж1ΐK80![ZXI,998Ò2}OG^jб@*X#օjq,RRLۺb?QiΤacyҔ #2XY$Qc+"l<PM&XJ1nu\3D SE:'ATiy6Tшt.Lz9M5鷝*Z߲CL= +߇I(G<eZ`ý/b٢&C3zw[~N/48ېԋ(]5Kl&n>`e2:pt v.u Ƨ0-j}Tc&8V8 b[``+fgxvP0x7E*Dy(:3v0ǐa%B E +%?!P`nϦ\QʙrȴM;ѧK!)5@#8[{Pw~!n@SE@z4ݑL1e lb+m OQ^٪wkt);p{;9Xgܞ/Q(Pj$2,#o&|) +endstream +endobj +2072 0 obj << +/Type /Page +/Contents 2073 0 R +/Resources 2071 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2075 0 R +/Annots [ 2063 0 R ] +>> endobj +2063 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [373.327 707.957 458.607 718.861] +/Subtype/Link/A<> +>> endobj +2074 0 obj << +/D [2072 0 R /XYZ 110.6 770.89 null] +>> endobj +730 0 obj << +/D [2072 0 R /XYZ 91.925 689.9 null] +>> endobj +734 0 obj << +/D [2072 0 R /XYZ 91.925 579.389 null] +>> endobj +738 0 obj << +/D [2072 0 R /XYZ 91.925 473.063 null] +>> endobj +742 0 obj << +/D [2072 0 R /XYZ 91.925 200.226 null] +>> endobj +2071 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F50 1198 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2078 0 obj << +/Length 1057 +/Filter /FlateDecode +>> +stream +xVKs8 Wi&fIIui6vfmEۜꑕdnl23{1A@| soql2ʼe*Tl*cazL›7M0%ÊTܿN>l6z59 7Ag7b6s$ : Kd’Hzrr8qeY^FG1ȅ7>/ M|$&&nZ.ǁu$cJbtZ"9DW]7lXA2ځJYA GjYĢ`q,'MFq,rG h(V}7GqB݌n&uWbۖ4 nUkjEG]v6` uXvHF$7zLuQД*]llQ֍nԆ8gA +]3x:tut~/Aā>u\+[̝۪5R/ޙ;|9἞߹䧴=e6rЋ)2R]g4xwȁfuGcz=jkc#gpwt|Hc 8wP9:iw 1kXOO7偙;Ιw7+#gSݠ/}  &MR]$vyAzo!Ϟ +Q2"0^ǣi]:h7]=xlU511\T͉݁" +endstream +endobj +2077 0 obj << +/Type /Page +/Contents 2078 0 R +/Resources 2076 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2075 0 R +>> endobj +2079 0 obj << +/D [2077 0 R /XYZ 90.925 770.89 null] +>> endobj +746 0 obj << +/D [2077 0 R /XYZ 91.925 733.028 null] +>> endobj +2076 0 obj << +/Font << /F39 979 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2084 0 obj << +/Length 1960 +/Filter /FlateDecode +>> +stream +xXK6W| U5AOvؙl+$BR̿n4@Zxsٓ&_7ĽǽwX[<gLdKE"[W+q?rxwsdo?޾^|{Gne__nyzm ,`$JX"#>so ~8Y= +ɸ a]yw-1H~PBDzR->oTZߗ͞^t{VU}JCǞ qI~蛞vMl`t2頇_9͖Q$,Gr|~1Ni3sx [J`Ofo%È*F6é1ܪԿv{v|[%2|uEb,xzXקjKч$.ߟj$ˮ@Omu^8C%!@]U̹ݱ)߰čOCFo~D}qMVM6"Ix+E\f^Nkx׷gW8Bnig3YSN <"d[’_Da0?VyaEyOvT0! "x1B|phTYVO}zHީ-+*4bI*6!yJy<10DF =V&L0|S/_%IUvXa*[+ܒLI̅j8Kaӈ:k Zyȗ?%aj?ٖ3Dnc%IlfI}'hG{ZFzkM\0 l<@ȏ3<+?AmC_ҳd\[u}(X,›2Jc +!%쿠f !k l9zpps/c* F s[ h+CSaڞZw么Ss̐tаr},,fT*Ǽ+jҢ{=n/ `2~axE0" |vGN?SS\b6#8/,=]8[ +id"JY_$H+ EIc;fJb0$6Z]ӪR +I[=6H Kn /kmn)X L_MڦMȗ+7~4ݩC M 4{nυޡ~XFчNVM ߊP +E_A)GOy]2en=044IJ$Ҙ&bS Q|Wz)yt$&l Kٗڝ*kn!ۘ3(`a ǫP\3"uLUh mD̗La_ P|p$0WR=/ T*o|o9Z9|_^k-u_ 0#N4҉gOts0s~')ҘfN(yiLNWɖp|~'X4 &^3wM.F4s# Tx6eA,:).@qvS* UרQbzOCxqS1z+ׇ +endstream +endobj +2083 0 obj << +/Type /Page +/Contents 2084 0 R +/Resources 2082 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2075 0 R +/Annots [ 2080 0 R 2081 0 R ] +>> endobj +2080 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [171.586 512.317 256.865 523.221] +/Subtype/Link/A<> +>> endobj +2081 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [336.236 221.036 421.516 231.94] +/Subtype/Link/A<> +>> endobj +2085 0 obj << +/D [2083 0 R /XYZ 110.6 770.89 null] +>> endobj +750 0 obj << +/D [2083 0 R /XYZ 91.925 572.492 null] +>> endobj +754 0 obj << +/D [2083 0 R /XYZ 91.925 494.517 null] +>> endobj +2082 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F31 899 0 R /F58 1221 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2090 0 obj << +/Length 1896 +/Filter /FlateDecode +>> +stream +xX_63Y7Ӈn.iuI K,:i[fڙ{'B I=潙k1{y^HI\xiƒXpoQy<,"f>u0wowwOy5o^x{iv}q<,7$ZE\ +d[ e$ֲ]qYJB$o*tv |$d=6> +Mn:LaJ5}M'-ȁ^R`.HX-,(FӤ6, I҃i]]E{e("VaOFwEɆWڒPW7@."pahKP^g ѿ8'ɤSY\ŮS faڟ"Uw`x#y"XRl pFR (_qUR:f̼OFSk؀ؓ7C]_S/NSqlGDbvM[Yng!=nɦi`g *ć,-*zn:f☏GS*3di6!)-)@j>|a/4 }@YBVQCS +O1\]W+炢D ephJ\nrCƱ 5ʨ;[64S|NJCCURpL@du_9îa/R/.grSkH;PaNb*Ru" y]M!i 7i@Ũ#u@ҊXTc/\8=?;Dך&W4[49@@Du* +_䋡Ѯ]WEh6I_S-*GġT7\tIp!#G+?&{9 yH9£Kp|:(f, K>pda!^^w/A1]8EgkrC!߈J*m )";,):cU(SڤӔEΝPd:ܵW= +~'h0o(p%xT6rgNs Qr^/nIXV[=zcA3`ۇF|KŮ_̟M(`QlT2۠pb_=b +endstream +endobj +2089 0 obj << +/Type /Page +/Contents 2090 0 R +/Resources 2088 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2075 0 R +/Annots [ 2086 0 R 2087 0 R ] +>> endobj +2086 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [321.223 475.379 406.51 486.283] +/Subtype/Link/A<> +>> endobj +2087 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [321.223 260.41 406.51 271.314] +/Subtype/Link/A<> +>> endobj +2091 0 obj << +/D [2089 0 R /XYZ 90.925 770.89 null] +>> endobj +758 0 obj << +/D [2089 0 R /XYZ 91.925 620.027 null] +>> endobj +762 0 obj << +/D [2089 0 R /XYZ 91.925 539.738 null] +>> endobj +766 0 obj << +/D [2089 0 R /XYZ 91.925 445.367 null] +>> endobj +770 0 obj << +/D [2089 0 R /XYZ 91.925 379.09 null] +>> endobj +774 0 obj << +/D [2089 0 R /XYZ 91.925 324.769 null] +>> endobj +778 0 obj << +/D [2089 0 R /XYZ 91.925 230.397 null] +>> endobj +2088 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2095 0 obj << +/Length 845 +/Filter /FlateDecode +>> +stream +xڭTKo@WŖe~ušq6%Cɿgֳ N!!qٝoy0$\ySD&$I(B.*AS-8I޿x~^c :d&wӋ-ϧP ^\~ e8DgDhFR|?22τQ&JHʤ$7 3P|AQ!IdB _i !c(RekLH> endobj +2092 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [466.54 571.568 485.968 582.472] +/A << /S /GoTo /D (table.14.1) >> +>> endobj +2096 0 obj << +/D [2094 0 R /XYZ 110.6 770.89 null] +>> endobj +782 0 obj << +/D [2094 0 R /XYZ 91.925 622.194 null] +>> endobj +1192 0 obj << +/D [2094 0 R /XYZ 269.39 554.851 null] +>> endobj +2093 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2099 0 obj << +/Length 2398 +/Filter /FlateDecode +>> +stream +xڵZ˒W'f8pEx1= n{(jU)ɛJ>?=>|2əL?M`wVk&<>O~yYlr7Kç~yGN4>Bpi?h< >Bݪ.#Li+3' a|M ?7i ץ͓edڕ%Wf0b(VN5~>ѻ_QP6+n*XfeѤ'zVYN#rӎ.r$z].i_J1&w5I}4oXm[M;!LL,J%2[ne-6IS>Viަn +JhzCbLlMo?D}FuT/,#%EP}qNb&2VqrXES~Z?5E_fv؟b:4h2ډWI.2d՚W/ZpM/S*=B29vU-<;oӴ[ )YpHڞ}a/)ApaR$?{39<<%Õgs D@XOw@N xtKK$1!׿>> p'b"c܋)'Ͽ3BL?_]O3d5ÿ 5㚦Chkrmb eB_p{5 w aelȎ?Y S}J(gC٣η:[X"Ҩ[Q(`ډMhݟ y$ S^3.5ybO1#!.割\l ies]s2%ZAӰ(ŌIg_ì N[myylX֧v,P(|ެ +A*4[I-Qi"+0PnL`!ufu"y`;f:AgvEC{U!Qe܂*D-d |rN&Pp֎ +69YwGZzɇw@x2ywCmWN4{p~ٳC}~Y#PxM .?a6.0x{]1qZ`dZS8X [qZ-o\XRw,Eb( Ph-) Tײ`# 4bP` C~Hp+P:%vDLŘ};FGhI0΀q.F\M( QA7<.}􍚈k0^?\ys1uw.GCjT-8wIsBJd/jתxrfOY4T +7UCc= ƥ|k5{g ~6$g6›YV +endstream +endobj +2098 0 obj << +/Type /Page +/Contents 2099 0 R +/Resources 2097 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2075 0 R +>> endobj +2100 0 obj << +/D [2098 0 R /XYZ 90.925 770.89 null] +>> endobj +786 0 obj << +/D [2098 0 R /XYZ 91.925 733.028 null] +>> endobj +790 0 obj << +/D [2098 0 R /XYZ 91.925 545.281 null] +>> endobj +794 0 obj << +/D [2098 0 R /XYZ 91.925 393.899 null] +>> endobj +2097 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2103 0 obj << +/Length 2512 +/Filter /FlateDecode +>> +stream +xڵZ[6~_@"Rb.i7Et.˃lkʒ+ə̿CCY5'yxϾw,FLIŌHfLK1]~Ϸo?RHh6_hã?z.n"9?+O_7YԳD',QzagʦOŠW1<놓ǿ9DR Znq1=Raz}ЅWc/X,1B(xUowY3_mQW$]npeιќh)e^KY8U&f*/1T2IrD_"eFeIcg`kb'Y:L cH vØ2aq̿` + *ӫ\g%Wm5^{>1< COL] p.7"Of]|@cǡs*{ N8%OΈ2Owyag"uM_73Z?J_qyB\@Cu0">"`J\*/ I9ڱPw=rWmt*&q >IM̉bBjXra"$ HX^xqdzk \_&n"aHJW + 겂Ɂk`$v_U* +JG/1Q>:w}0Q}wD׶Em($ Z\.Z\||5@N&oeVA {P+ \OܱxaMHA;dy~SeUH7ʍbC +@G7$oϗSbhXlr])m)ʢwʀlnSLPyȶ:GS +ƇynuOH "螋u^uzٳqkºw;. v>9\3 +v]GjmMvYΚTB02eNx"eJ@>nuHy%P&(=sdSRڃ58v_iG@e|FUV[W$>h DWuj|ijbPE֫վkUwbfxw u"ZOܡ>FT 8n?vWuhGt?~Dl +\iZ2%š*)e/A`t(%s|Nmbu + phq ۮ'_;i +:w<ˁZZ +`8.&&;TPP،aPxce, ^)YU;_r=yfX[-κȿ& ׉ҍ8;,enfŒj (>H.lfȘ(PEu+T_ee)'5 ng}-A'UQ¨郫#Wo50إ0ekTMNtn&] GV B6<bef="zMY5&ٕnHiC#9mMC6l#i<?̏CpQmuKG':f|"l표1#)7AD̞H3@-߂.Z))FV%"#xnNKyFA(=z; }9ܠ;@]u+5>&"Zxبx}#xΰ'~ɚ'g/Mdx?J d,e~OXʟ__~d9rȩy P^ ŔU8<5$–)Xft5˃ +endstream +endobj +2102 0 obj << +/Type /Page +/Contents 2103 0 R +/Resources 2101 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2105 0 R +>> endobj +2104 0 obj << +/D [2102 0 R /XYZ 110.6 770.89 null] +>> endobj +798 0 obj << +/D [2102 0 R /XYZ 91.925 281.313 null] +>> endobj +2101 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F41 1063 0 R /F50 1198 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2108 0 obj << +/Length 1408 +/Filter /FlateDecode +>> +stream +xڽW_6-0sG$@.L!68w]a & j?Z1g0M:A,N~̧4ȝwϗos<EܻKs.gf 4Qƞf|AISrvQ IGSُ +A*0@#)n^>-sJqE#w*Ak`rB0-Q)HߜKFYMK92-"X !Ǻ-I$"-Bg+h:uѹ#kyq*5/eߪ6İ\'KFᴫw?o^=$36A:FǬq$ +T\)s _sD1XDO)yWb m/òiU{henk@}Y'ܑ~|+N;:jlYj^*(?6dEwB>BAHN*g?:2^F"'*X ن'imHϰL.0%-.궑dt(5feAP{B #_W]4*S ; tNuQe gʒ3Arhz÷͈VFwK0=-w>̶:Oԥ'Î^V6WSCٕߩ뱌 eF[x~Ȅ]]V5;Qw5485jV!pfw Q@I ۋH`\ yCĺ֪VW-4GRՋE?rx ֛K{Pнս.a&!yp80*F>]^1xG?dXqjߜKOG紷_~u)uIOgE9S?Iē`bF +endstream +endobj +2107 0 obj << +/Type /Page +/Contents 2108 0 R +/Resources 2106 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2105 0 R +>> endobj +2109 0 obj << +/D [2107 0 R /XYZ 90.925 770.89 null] +>> endobj +2106 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F35 934 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2112 0 obj << +/Length 1526 +/Filter /FlateDecode +>> +stream +xڭWKs6WrbDC:3:U9!Ɂ TIЊ.HN^ŷ>ĬŬW_~b%nyn,݈/EV>ؿ~6^:s/d6]gF̾}{|p}KoywC7r>ofkŭZp.oo,Il + 0/gtohщP[~Ė;'pоsxhͬmmvWwZW$sAhU^_uY)1:b>&u?VGƼJ5#)w4 +7xBzQ%8BVnƪzzԪa҈$ZI^( +@~sh6E.(b5/' ʹ\Z1+*`ֵ +'VfyAAiTN:ɺjoXp H.sEUѢ2DA$kdweFԠ`+ + bs'J@Ous{Jw&3*E- 쌶t$M ouhIe:l"糖B6SNtl6 Ȫ8,o]O0qN'(Jl GveEA]&(?G;lYlw԰-E{(lމfbmJu} oQw黬zMǭknbS@+'ΐ8V D+Re:V[5NK&4f4>NTM5ވNdjċZzBo POYa|-ZѫjW}zr)>;Y㑬cTepbEyx.477ǣ#?ٓ +endstream +endobj +2111 0 obj << +/Type /Page +/Contents 2112 0 R +/Resources 2110 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2105 0 R +>> endobj +2113 0 obj << +/D [2111 0 R /XYZ 110.6 770.89 null] +>> endobj +2110 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F35 934 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2116 0 obj << +/Length 781 +/Filter /FlateDecode +>> +stream +xڽVR0+Þ!dǎM3PBih `JEJmbI"Ҳ,q=@0|N{ v A2!~C e2;/6 +\]BN#>rb}|:ٹMέAb~w~u} A.t8w艀\Y, #Y䇠>2 !/ )tB5r' 'o gͦ4/ :2l@y)}fkty}ȥE%%bBq&Ǭ)WRaFl˔:-㖀P+x}XfvLlU5YHFr>Us3:>WDŽ%)720X" wNB81aɸӇSLM{aߋ%͌We-NVڞT6K20s|7%Ҋz~M ~K̒yOJ^)m$C'%Np)6},n2_Uʹse)#9^`mLo_i0"G[{g3[@]ՙu#3C_D~*<+1/{ ++zVdK9X +燻0'KMrBYUެ}=xZPjKPVs$ȇ~zunlEr,ceAuNl[P1iK\w]]3զ{4mQ0Q([GĿ?;% +endstream +endobj +2115 0 obj << +/Type /Page +/Contents 2116 0 R +/Resources 2114 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2105 0 R +>> endobj +2117 0 obj << +/D [2115 0 R /XYZ 90.925 770.89 null] +>> endobj +2114 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2120 0 obj << +/Length 1379 +/Filter /FlateDecode +>> +stream +xڵW[w6~ڵ"! Aslv==MubD6s]@pm^Is1aɯx J0f EDx""ěeWe0 9 GG?8<!, x}zy@쏏٧l[/!( '@ro| >y$cSK Bg`Z!yMixd߳j s\$o547%;+PeUOy^r#o,v|n`yodnjTS??3 SQTs1Rl16*=UgH| B;\0[EK;ǢX. _۩bS7&x /XggcDH}zHw431[wN]HW# QQb[SX0%tKU߬d.ֲL뢬vYwQ[ 3 0^:U;+CX_U+5:!ͲVOcbtĐ"X1z ֣wiꇵlwna ;_O#LjE p|lm +oC"ͤ!PdgJoVU{11FXs2"`Npx^&Kɥ4Ծb1Q/&(⤱>nZ >檪Kwz1nZ /zx_&>M6k?1ǣDIake@! 50yW#0g k[CV*TORo3rdS6lh,74`׶m+uY+;0U?eq>? +M~ i||.~MMQ0 #=]m=a=x3޶^ ,77x @Dͻ_B#eNڡ 'JbhsbvĘi([&af~M+ӤL߅ԍn/PՆ.nO" i ZD\Vfڸ9NFoD.eVEn:8~ d~͵/i#{pA@:4S. akrш mT2&m XygV9iC6~-` f3:a7c'R]ԣx?>lecgmGV9ȶr?wӊmR'g6²Ec;D7jDǥe^֪iӼWoJ\%o!GjcKweRɛ/=A x)7ꐢ+y^O.͢ jh8JV/#(fy}7A"+3iտ(y!R` 6ITlރT +endstream +endobj +2119 0 obj << +/Type /Page +/Contents 2120 0 R +/Resources 2118 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2105 0 R +>> endobj +2121 0 obj << +/D [2119 0 R /XYZ 110.6 770.89 null] +>> endobj +802 0 obj << +/D [2119 0 R /XYZ 91.925 502.204 null] +>> endobj +2118 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2124 0 obj << +/Length 2023 +/Filter /FlateDecode +>> +stream +xY[s4~ϯ4B%_e) PfxXI3]lgH:%) ʑt.M* n|zۤ +RqvA'$eYm{.e,h"//"XX^U~*JDW?aqZ` ,()bd"#Y"~4%Iz>M8Eէ_m +g)Vb +c՝ʡFHHV'f3=`C +E˔t0̛ٴZ [~n -i + ,A^˛qXWϾ'D~ϭxERs8<3!C )"@zF3" efR6[=~¬zڔR6f8"J̏U!|NrZd9opewu?({xw'F +R`kuWWrZe)OrFr3TeB?YHQWP ([@L,9Z\Zv!ݶjhb]ݖ[mibpf[TVj&ۤsȿe=ۛ)=b`ч쫍kM]fo0Xm-뗒;RX4L]vM1PMAhfO?hmm!+D9`dM +T?9Eŷ%d~MxbnJIv͗_D)/ܴ"qP< txY|&3d:OB ?&n( >& +DNw wH"#)gtNT|,n=xQ|'(91{N1O0?X| 2s?OZ8fOTxqW0(IW +RR]PAtkg1B ;V'% H(]kx@|Sxׇu%D+ESaiڌXŹ~cp8'hgbɰ}f^WNvVWoSFjS5c5t0跻\mt\W- +ӄpViO# y49ڥZpr< +wc)2oU?8Ckbe~=UҼEXim`w]_''Ѩc.&|zjgVPODUgM^}sدe-|SuÅe"HfxQ,r]L} +endstream +endobj +2123 0 obj << +/Type /Page +/Contents 2124 0 R +/Resources 2122 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2105 0 R +>> endobj +2125 0 obj << +/D [2123 0 R /XYZ 90.925 770.89 null] +>> endobj +806 0 obj << +/D [2123 0 R /XYZ 91.925 371.334 null] +>> endobj +2122 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F11 1870 0 R /F8 1356 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2128 0 obj << +/Length 1281 +/Filter /FlateDecode +>> +stream +xڵWKs6WS=>Ȫ_6NeMzHrDaC +AQ2cA4庝"b~K!B|>zy%V&! 8<ɛ8pq"l`cobۭכW·|yYda+nB+ +"7kL%$ז/B/ nUV(ƆT:UZgzy oD'zY_񂱂婌%i#P[?RO`/2!RuJ* +~]V9g%l^+f٪' +>X=vmZ[5USOM5B +FVK0gAƛgF%vL( iEM#>p먤eT:[{R('Sf\?ִu$E6V݆r֝Ӥc3s\ .IEHTTV=gҕ7l^JeHz W6bHuZ_zw"vJ]ƏL\:V1lާR PX9TEIAqN}A~IAEm,.R( Xp ToJjr^@H:rRɓ;%r !ıAlBoP!pA4.} +\>,$-U\c2vhZP3fjeOU~^?~Zuve i}8Z} Ƀ& ЪU <_g]'Bc2ad:g=&]l?hP&Q<87n? ˀyjjA5vY*ӭx`﫯)';WӬ0Uي7컞tPS1t nz]Ӊ$:$n,*THˊR-I2-¦h'#Xa#2-/_uUҌfz?8h!FZ!FD1!CJ횖ufU>RV)P ]Jrrp%W.ۍࢄ\|!\ C$hӤ2 HH4 dm){PH9ԙy)8/p#Iq5-Zm?d3Ad=K0ftٙ+> endobj +2129 0 obj << +/D [2127 0 R /XYZ 110.6 770.89 null] +>> endobj +810 0 obj << +/D [2127 0 R /XYZ 91.925 303.121 null] +>> endobj +2126 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2133 0 obj << +/Length 614 +/Filter /FlateDecode +>> +stream +xڽUMs0+tAL,!ƙp|M[ii\Lf2cg:^J}+0X .ab.hB9.E> @\ Wm2meloGqdB`b>ؖئ F?_ɍ5Jb@@HP2ں  F'ԓv& CH+Sm1-Hc1cc O18gp0 4\k.}+WϋacFδq[ޡnDm])DMԓ+M9Oq!m5}gCa:=>LN abhpN=y> ig+j8 +endstream +endobj +2132 0 obj << +/Type /Page +/Contents 2133 0 R +/Resources 2131 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2130 0 R +>> endobj +2134 0 obj << +/D [2132 0 R /XYZ 90.925 770.89 null] +>> endobj +2131 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2137 0 obj << +/Length 2666 +/Filter /FlateDecode +>> +stream +xڭZKsWhwœUi;*,h9EU~)%.lp/Gfr ?__ʹEv +Uro妫Wɹ*.蘜]9#b| +n[>?uUxh(b'ڮ^*7/Eo 2(yЬۺxf~jU-U*Q m"u:E%.=tf =O-QnςšC(7hPh3iqr@ lX8hqcJEл 7O m(-r@ਃ}5@ș|d D$GPn $YSID'3zĉ(nTNPyh;I'9^oSQ(Wrzl.ୃQ@ޞ!5t&ƴq( c%aoa .%j)d]z<(Gl4fXGٌ:FdB,;}Ƈy:+591ƌfvԁV M.UO "cO%T}H +#ɼ@ 3nJaqnyu*e="|?W2b + +Լ^"`!yzI0慈>N)vZ>H~uݐJ5'F"&9w :W]Oyvfp + Ӣ=3iEN5H?Ev %G%{OSy5ރ+G/kme L|2,a@ntUGӸnweܔ甖˶,xܔ]}S#e2?߃Ͷط :L)wQտ g?T +TҸܦ"u.Ro_x\x9eNjuU1XyeLY~Զΐ֓ zg{D*_Pݑ*- +M^䥶ZPG OR@Wͻ3岧#nxa!L{ @̤ɪrvY}VMծP7D^/@߅D+B,'k/,y[ڣ]+-%%A_zѻfjVüٲ_L9¢MUGZ~p$E&v M<%yU.>a^z:TwuW-Ř}3KŒ-ޞ:߾ʔjlXbM#ߐcpl6MJlgZsSG0jZs]]¿Be-8\bwMAz)MmjC7ic1AD,LV?e=ξn9}2~xYׇwކ5 Kk@|4٢LAM39> endobj +2138 0 obj << +/D [2136 0 R /XYZ 110.6 770.89 null] +>> endobj +814 0 obj << +/D [2136 0 R /XYZ 91.925 733.028 null] +>> endobj +818 0 obj << +/D [2136 0 R /XYZ 91.925 492.486 null] +>> endobj +2135 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2141 0 obj << +/Length 3636 +/Filter /FlateDecode +>> +stream +xڵ\IsϯT}ɜ.۱؎-WRe eTc{R 'K[u7g3>go +vv~e\ۙ)f׫//~ZHp0J_?}g~7_\L̂`A39ef7g+fƙ +~!iWOo7\F)IAIB<춷ja9oon HXuE6~J7H:N4-H$}McUuRZ]]Jw4)}tP>]]owOvyK:NG_ >a=B~> r.%>ݕĹ Xnu;3_o.]U&i;oU}Dfv3 Tvz2`^cۣ96}" Ô\D u:Wi2zMbC.ۇrWm}y_wLI$Ih,IJֲE6fJV#JT)"4c-@_k,c8T}Ƹ:LHNn v8旅^G$ u$Аmwm)v41Ib|Kzb^4,w{~_4:VnNqnPʚ9vɥ|(G >'6O+6O]$"Ћ;Z30('i[1G PH s&Jcs4=NNJxt.Zvq,eKh@O$Wd7[q{eE%K4FD5Ł j],+z?m}EMYmn:PuSu墁^ 8mwctc`͖Za[\"FBwh9 Yovy'gx\{:7b⪁Q)ӗ(zU34a/~}&A$H,(.TMIW}hYuOMّInM.R P>ӫU[XvU x:xc}VX%4ڠeWv=: ViXEvHbV zX-[7ep(X23V6ErsdcBp$^4T[.~L"2z^uO$=Xu0$ٖ +_`HTQF[R +!H>>y`UG`]{M<[?A?2jq*u;Â1>jnyb{g)uҸqʎѥI-[Z +<@+EC5( 4c K|;`@x;GL0U|Bv1=ѝT^&$Wr﷡h^HhĝΊ]*=i0x g@`ju -Q~ #2)ɇ3)Ԩ$ Mk(B*3KQofY@pVQjpmPn#$JX6J1,a/A_CUR +H|҈f:oLCu +)~pAQT 'Ga“!¡*-\҂ݔXhpq98x>H9;AI-\FHtJeDXptNPGj@6*)N#'OƋ˅t*/MiR$+ Evh13_LT4Qr PדkK +΍M(?Jrl){3$n*bo7@{cSo TQo(]no&9A4?-M Ab ¡A.Kgyt(]\ [de3$0DM־-Kag;7~OxױuX!cL$p䠊 +8jrH@]_-P2c7N-gکi'cA$QId &1\7@|2Vm葴'%q3*4ħ$38 ]36H1B˜QґfDTzri8V^0|Idh) UCUs*\C9"TI۝N#_,\ڠsTܡ%-yh-'%D켇> +RR$^=:>-%. +$W͕+L6qfz6bYT*8kO#xLjcNcH,C _Ci*h8JL.˅@u;dZ +5hH9ʀTb;X?ɓě؅epxv$:C +M6TMÜ2> endobj +2142 0 obj << +/D [2140 0 R /XYZ 90.925 770.89 null] +>> endobj +2143 0 obj << +/D [2140 0 R /XYZ 91.925 626.726 null] +>> endobj +2144 0 obj << +/D [2140 0 R /XYZ 91.925 604.744 null] +>> endobj +2145 0 obj << +/D [2140 0 R /XYZ 91.925 586.876 null] +>> endobj +822 0 obj << +/D [2140 0 R /XYZ 91.925 432.838 null] +>> endobj +2139 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F31 899 0 R /F29 898 0 R /F35 934 0 R /F2 1201 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2148 0 obj << +/Length 2124 +/Filter /FlateDecode +>> +stream +xڭYKs6WHUEޏL*&($ZmV$QKxvLLhL&?ܼ_|ANw`PQ%U{ݿlM`6W|I~󻟾|~ϧeǛ7ap"MXq\%FbJ +~L(&OrH.ͯ74J}ZQbL W+4H5 ADyX`!XZnomEj6}q8hڇH+(ڒb`swPjm(ؓ. K,SX +11ƞcAPT`!FHajH Tl&48!i9QN3hIs|, J*bPN!;>dr~~1.?\!_\oH`!UZe_hGS]Zjh:9%D5rljJ'YHNUNj5KIšV:(MBx d.@ +Eh.꧝ \i9Ͷl]odxi>H?^ xUO.f nْ\ Fz)S<`T+7X_m"3KTLJNq@O2al$/ nY𱄹 즠S^mxx;A  WU(拥n0u^j" ," ccX'F㚘Vx5)czl{+%N+G(Jv|cǴGi8*$]Ao |wU+ĕk(.d` ]ʡ_ǠYuB')Oױ\M p:1Ts +śzyQVO")dC쳛 +=~:)YoumtxW۠΢]^蝧h/gY5:!nc4`ƾuR9੉>KMHv;ƚAr;߮ȀhW` zbh.W@`j F~!!weV"J¨n@dH\X1uJydZ,op[UdUۘw_2_=VG\GLw͞ }SD7pDcoy[1ރ70xZn} A[5R誢@s+@]4çDy3&yU͹avۡ~E߄ϗr_@ q\)s"kq XM=P68}m_}Ӵaq;tH~PǠAfU(g">a!U?B +~(Wq6F1LP4H6 L"XpzL ܿlRRӬхKB73ET:2a΃ f"Mm+ڀC@x'2N Y|QF7ʠ`s-\Y! C"R 4Zxlp,@WH)i:*v-_3ME+8dlRFr %ڰ9׹F"X +endstream +endobj +2147 0 obj << +/Type /Page +/Contents 2148 0 R +/Resources 2146 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2130 0 R +>> endobj +2149 0 obj << +/D [2147 0 R /XYZ 110.6 770.89 null] +>> endobj +2146 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2152 0 obj << +/Length 2268 +/Filter /FlateDecode +>> +stream +xڭɒ۶`jĐWd;x:\9$9`H +E*$׿nt8vջHF}|p|͋[9"vG燱ā_D@Ey }> no?wۿ?l^7lw' LDN%^"#'?nw +X=Σ<:/C+淍?ZLg8"Gʪ"nZݝದAphي},m۴ ZmLs];#? |WtoQ}:T Q7=]S}Lϗs#ճwGUUwuWBnBYS ݓj{^ӖGՖՅuYCUC DfP5wj\g0 J|`LjGZElga542k2ߏ {;kƩ[!W5aT&vQv.R ˺+ ťFGfBB҉z1O\EyBK\w]y_͹_a3Hzi{A8-/UUg´13DFH>8J'ܧ*o!p ) a|BU;Q  \- @Qc FV~0DWZU{Dq2$˛yOkC 3l)j'wnΏ$$M[T?~OeeȥtF#i9ヮ IH  C(OZ#)vE +X`cۮ'lh@c+ ìpXt\LWq2d( 4u-/ +]\c,Uĭ㞷 Ixzy-mEy@FHx}?N%&+ o[ZޠrUUzסk/idm'SS%$s-|QzEhO4D8 ):`X8I+0q0ጾ 4j~I3RM7/x]aIfbu>} +d6ښe!ӹn„}8]424"G5SVX^UaV` z3C,sFCtQm&s.1(qC"P? $#'=Ƃo)A03YOP%+J0bNm{@}:5 >ҚVMUaSrCz%ɵ f$5ݳ_lXv!c*sS^< ׳^̺/H144u^QhU+j30tY^*M-GI M8s +2 X /gٍLTff$%'Ee(1%`Y`|JͤBׯ]}.<> endobj +2153 0 obj << +/D [2151 0 R /XYZ 90.925 770.89 null] +>> endobj +826 0 obj << +/D [2151 0 R /XYZ 91.925 246.746 null] +>> endobj +2150 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F58 1221 0 R /F35 934 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2156 0 obj << +/Length 2237 +/Filter /FlateDecode +>> +stream +xZvF+$ω5UDB6AP Bv@( +p %}Fn^.siL0Mԙь(βu⇿v5Wtk7KI_ov|_w\xw+i2Lj*3#T^'xKFp6Vn3Bb\fosER-@(ÚŦI}|>}Y_.>͒-:}w8Uija"_}0We鋴oU[E^ETWiCQɇ7{k gO8/K^!U|KkWzTuŎuXTZ %Aҧ,ҧ7eG&E]R HPxdj +,_C#9Xh.@SF7I)1]_ p; U7]5hjMyܱAngJw3Sg')ogIq/0ǻ,F +*,] +EXvkbkWsDY";lZx 3bD_3,Ԅ!JB zg:ͯ44sn!_rQV{Vb؇],$!=?*ҳυ0'"s2Ilùf\nuV-}2/`KKoi7_[=79<Q?xx`¥ϊNxBU~ fZxy}SL<u?>$K+ I +Su @̈dX*NON?s#(*xYn~Yn>z=Syw8T= "~^NG3ICqq)!$;T_1gb)bq +@)gRD=;__+كUh5J4_ ^Pq;U+[zGYAj!P0g$ۣDpFVEqqV +#&50d9p,!PkRD 1:3Aoד`S}4>)P 8g'$j+.\C*^.9B :$(}ָ˕@HJe-\0CGkPNp$A [8GxҐY<*#_e"e,Iv +e$QrtYN1 YAgBHA-q2܆,ljbчLZB3xT!eO!bU.ě>Pgu4*Y3-{{Sv~չr|+SEtM2k:κi5@4yX;So<'l_8w2 "\QG&C(BlY촌qvw һfK;{ Tb•fGl6bC^ZFv@*rH]ݤ⌣=Qʐ)/QJW *vB&3 huD#U9rtE-\0z֗sJq`{ͬ 4x!)-<1MOrRpam>kPlscw{R}?PRO)|BfG!`17INi6bٓi B/љ_hz|s3 +endstream +endobj +2155 0 obj << +/Type /Page +/Contents 2156 0 R +/Resources 2154 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2158 0 R +>> endobj +2157 0 obj << +/D [2155 0 R /XYZ 110.6 770.89 null] +>> endobj +830 0 obj << +/D [2155 0 R /XYZ 91.925 359.362 null] +>> endobj +2154 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F31 899 0 R /F35 934 0 R /F2 1201 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2161 0 obj << +/Length 3389 +/Filter /FlateDecode +>> +stream +xڵ\KwWhW1IN&M4td!X'r]IPt%.Ͼꋿ0 ,Xig73%,ΜH12oŵ4|kcǟ槷|&=_/[v7W\ gb ̜q)3[=^w3TqLKŸhof}3ǿQ +Bμ3' %!\]2$}#%lOҞH:.4sց8&-mjq~~W6BmSz)wR2wbګ.wZ2uw=Z\Ռ_E)fUY/ ü08t]($=RgY{[$`s"53^B%]%Å$W`Yj ;`N^['UIp3IFW!9܋R&h J!gȂdǧ.RKx&s6-ie3d  mI(ևj$T +bZzJ*Qg9m\O Cc{5U ˤ7E4&N"(8YNřQ9Ջz8k#QYOp>+cq8V Q]0VjsԊ>e('C22jtQhM̻=|.$G^P̂kQRAWSI LYԵRb>1i,wk&*(ѱ .LڠC̹Zm +K쪁oJ3z"Cg86Z2:p9 {L'ABj-"SI +WAl媡:L_1Z8[ώB=*ktbywC};[ {7>RCbۄ; I9V~:ִ.̱P0flEWͣs,uS11 +ș3(Hq-'ՠjN3 )/KYL=N#wiSJNd=DiY -\@\n=e)1B4 ޔ4UEf }>ARe{ϕLFs C" +)1t] m( rTp&ވ1$(*OLb<3mbf%c\L4XpIa-K2uߞe(䀽zɁ/%90*POUӌ`Bҟfd윜,M(VHၡ-@BN, h.R]D2ed$Q+T7\VW`}aJf|1L*f"!YuzҟWIM +I/ÅA},Љ"[1$ˆۧ5 7N1kȍvi?\;07걪oz $"#ⲓn>?nvOmV^3!匴dvRI8Ƒ:G.x]=5G\ar( x)!嵥r&/:6@5Z%혬V9~-Bvw}ج? =ym_n{gT-)syĆx{ׇWXyۇ|v- _}.okŵBrzkh&am7S%\R5KZ&T.Uʗ}IѦE:Q*Zyi5{Zwh>?^6wm:kS~]a{(+[/Vv6%F+KV9Ah6h$n~]+1: jĩf@,n?>EyW%ykAv=U-/!E%okyQ7iRuUjxKvwH> fȽ}R<P+ڟaIo""~Uu꼎hܭ3V*qGGq4QDpv$r1ϔU/Qa濠W1Q#=<1ڣ߶VD0Yrry ط #GI4ҜF*F(Lh})Ԋ/@һ.]>*)0CN6+$fM^_ 5O5HM$zh,9"Q0%uPaM@gVt{i1߭V/kmEԿ_n<ԏ=wDöM3ҍ?qՇ XTQI!C y˒ Hw@Ŧڴtf9nO^ y?:Eڝm/KPt,`/a{ +d]056#tOZjXv=H! `sU3. C]oҠѐ{hpM//?|M";q#|;D_EjD'MI|{Gix+`>}4ʺlOм\HPH/Ƴo#(Q #ڇTUΞΚGjwh$QW;8>~nifC $> Zgj9f}T6GM"\>>mvgfކ >:w5 +endstream +endobj +2160 0 obj << +/Type /Page +/Contents 2161 0 R +/Resources 2159 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2158 0 R +>> endobj +2162 0 obj << +/D [2160 0 R /XYZ 90.925 770.89 null] +>> endobj +834 0 obj << +/D [2160 0 R /XYZ 91.925 249.42 null] +>> endobj +838 0 obj << +/D [2160 0 R /XYZ 91.925 158.418 null] +>> endobj +2159 0 obj << +/Font << /F39 979 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R /F29 898 0 R /F35 934 0 R /F58 1221 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2165 0 obj << +/Length 1689 +/Filter /FlateDecode +>> +stream +xڵXKs6WVjƢ7OJu3I0 IP +RV5.ER ~ keɳOI#/Kw#GzȭwOo/3/$6LgaDۻi@?=}5___farb1sFbV:Zq;Zfr{iOk$7V֛ɯQGeEv0:QF܊j%f:Mu%3C-(Opcԓ5q@_2yYVPA^_q^6ltzAXr+B5lQqpyه=?]|4ZȄ5Ӌ8rY򂍺n8\WB1&|ae'FbeXoDg͌?b4 +QFM JCfPHfKf-al vA +Q9=ٚ@%=d7OqviU4!DX qaꅶ&,8AbZS1o{}TT4zK3D "' qsuZ⨌.1]3?3ծAa T*<Njg8t<;Q sv ΖK$LP7NB6}t$Ƒy`)eg@9fy8aRwެGr˓j AІmZ^5kjep1[yE^,."=i7QTUn# +'!V&"eo/35]𺁃]e]d'f+jikP9|MEKԬ{8x[]Y0y}mN[,R|ŭ݇oX3A/|JՏ&xH ce5H4 sj͢!ۧԫaC| fEU~ 6vC2R]ߖ*J! 2CMT?wfht/mrNnx1~6ү\+TГIj,M%{㙗G/` #cٶJ-Q|UN/ 5&C!^[3[N9y5 ,s9o619BǬh_,gt8$mtTr%H\ ZHAZd "X17Coo#0 m%{UP~"{D@ЌfkJ6:E(|q~yXO +؅ 30 T6pY+?'gᑙ`"b9x9 +#ۯ#,S]BR8FjƠ窴D^E70KFAu+C3d;!dH| f-deg0P7@tEvB PWILOJHObY@t +endstream +endobj +2164 0 obj << +/Type /Page +/Contents 2165 0 R +/Resources 2163 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2158 0 R +>> endobj +2166 0 obj << +/D [2164 0 R /XYZ 110.6 770.89 null] +>> endobj +842 0 obj << +/D [2164 0 R /XYZ 91.925 522.494 null] +>> endobj +2167 0 obj << +/D [2164 0 R /XYZ 91.925 479.158 null] +>> endobj +2168 0 obj << +/D [2164 0 R /XYZ 91.925 461.358 null] +>> endobj +2169 0 obj << +/D [2164 0 R /XYZ 91.925 439.443 null] +>> endobj +846 0 obj << +/D [2164 0 R /XYZ 91.925 404.514 null] +>> endobj +2170 0 obj << +/D [2164 0 R /XYZ 91.925 361.178 null] +>> endobj +2171 0 obj << +/D [2164 0 R /XYZ 91.925 341.321 null] +>> endobj +2172 0 obj << +/D [2164 0 R /XYZ 91.925 321.463 null] +>> endobj +2173 0 obj << +/D [2164 0 R /XYZ 91.925 303.663 null] +>> endobj +850 0 obj << +/D [2164 0 R /XYZ 91.925 242.702 null] +>> endobj +2163 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F50 1198 0 R /F58 1221 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2176 0 obj << +/Length 2338 +/Filter /FlateDecode +>> +stream +xڵZIsWj}WĞx[f@Ę%*uAVN~/n ^x[)k[8+~󫏗o>cy㧾?~zҳ/}wY~ᇿ|~śˋ^ Q439eůbg?orZhW.x1JŖ`Mb=y<{8ZSьgrq3.^>ܧßtT'iAp5 DQFb8MU/rH4NBeԌp7Aul5dEޖmb}HDe_ƓI:*"1%M^766 ڔR[UvD˻2H},x8cjōT/c܋BGzyARUoB(RKl#hy::Xa¸mUAr `` U>-:دG!*sL[qTnDOtWGƕf:@&mH S)+{h]&r:Zp`=C gzrHAnjDQ\Ɍ[Ht˖%ghTҒFw_r Bc)ņtHJ: / T'.Ilp])D)G5UE_"MPAF -sΜ.C1$ApV +^:ľ1A5U_Pϯ +m!;LNnTAg!P\btQ۵Y#|3aJVw{Zbt1ߵ#g*(/z*9bHs!NDkk!%EKB*շǞ՝dƞ!6[# (B`5$[ayoks$0"9'daG/k7*obX'+ڜ +w]n2O0\dAw4779,O6#5.%1hǓդl2Y&iըm+~)Mj=0!TLX J!M1y)nš3ynZ)"[~mɱ4x[8,ֶim-O2 /Rm9r肰of2^0S%*Ŝ+ys P47VsӑF&ȱM%jW߉jnhP8If˃@upQ6\?yB< ,Ahh[tIC> endobj +2177 0 obj << +/D [2175 0 R /XYZ 90.925 770.89 null] +>> endobj +854 0 obj << +/D [2175 0 R /XYZ 91.925 513.735 null] +>> endobj +2174 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2180 0 obj << +/Length 649 +/Filter /FlateDecode +>> +stream +xmTR +8Q-uuWcA=0 *CƐvhfSu=Eψ$Γ e$\|& M%KFg(/>y|3.(@<8xyq{|}\]_Egy1HC#h.dTl'J]!Jl^rR]7S|z9HIߛR@%c@2 j X!!T aEz}WUY&Bc״ m=Ri"qu0\mo<跻V]szD18'5v +ת?&|Kj6`eJ2Tkk' utl."MVo=CAR0X8s宫 6 b ,Q1<.2h'2l6N#dΖngw86rx8b2YݞU2X{TBٰ>C_7U e|QU駃4U:r8dslt5t;,خ +y c!=rhwQkB}Cj,y>K|O2*\/g>9Pg +BN q³)Ld$rp`~Ff +endstream +endobj +2179 0 obj << +/Type /Page +/Contents 2180 0 R +/Resources 2178 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2158 0 R +>> endobj +2181 0 obj << +/D [2179 0 R /XYZ 110.6 770.89 null] +>> endobj +2178 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2186 0 obj << +/Length 2318 +/Filter /FlateDecode +>> +stream +xڭvFrs,̹wI-E맪aG6_J|(Y+q ՚ +6oOv'm̥N1Ųщ*/2d,{ W{wZ6[aDM<.}V$A\<m6ª$Ov/8u/0a.'H!YEtz!&{ϢʻwlSlZΧS4(;z>dا",`WߞH4ej2Q,eg'Q9a`%lz F6L6W )+1P6: =*9wB^侩#>ʧ:fI8=m)rS4ɳQpFgI^uxN4Շ |VIlx*hǣߗyqs[8|UVJq˩)véâMA{#͸@oNڨM=|E;6TĕAjٶ;/_mT|NwD +L`!enLR7=-^h׾%0<`|6K,9kzsYxi$k=\P4TVh68xʢ)bj18J +pXuHH>Qd)]9/x+(%Ӕ9ϭ2Aʮq$2͔rb"19'`J&D!"-2mbZqOsIDzbIaP2ҫ08 y7ȗb;|#60ੀH+gq"Yy[d=ƔPA0¸ssZb0C8⨰,ݔVqq-+^B;"$i𔑘@rN"AЬ$(HdP>m* +Ψ" +XC89A"U:E䒳Mn2ein>pJ&\` +ZH F o .["4!4JPϳU `JLJ2LhJ&Biu;3VAVd0o#tV$a\lf>c* +{9o0X Ҫ0Usao‚C[¦+rpItRk@(:4$d9mjV Dͭr9U|SZ5w`*Nh>N͒X>SKت}uY"h:Z[@ P즀Ҳs3 +APJ-fwۃ搦bxkN'{ CI QTTVeu!;9%r:Ai 9 ++W@ )qB: +?8$*ƈO9yp'Bܢuu0n 6 U I@fa*^Fqpzqr8@ATRuӔl˂)`\Q[,e + H&z‰Xgysps1cqq.hň tPhN[42 L{37G@KmB!̮} ReD}ݤ粪m(k(sRh ,Hkep{E\B30:aAY}W~;cXɥڊ$u(Iew9 ISʣ +6IE׍,*&r /ʌ59$-Jv>y$,37h +QT D醥H~lt@U"k)OkeQdtF&`s?r!z4G&v:O}F9"='H)˱ ɕ>m{$A=UV)t**=?A&.!iKHS82`v%|xfף7**[Wn)[ԑnB}ݔ.4m@IL藠&f-b#?Y=ŔCcK%{̩Dy'HnZ"n) ѾOV/Û"0׊xw'ubBZ i zeIU KX+'\ K &ńǾg~Rn&߀Yq|s 0:1rQZpAF zqZֺ`u\{$*3vY!<+U=σTBJVq|* EÏ|ԥXE&D|H9X*+:kWTWی!بLش7t3H7kwip݈bs[k!<dl +ܨJ48胫ph[Id ڕVEk]k^o$<ϊ`>$HZ4p<] +5 ^ nd4`cӘ\瘜j.;4 vhI*$.i|%/&}{G[nW_׻)UYrudcuʲ< *WPmE>B¬f-9Cf]NuVja=&&g 5*VuVq&SK8䢖Lv챳#$ҝaP:/fJzj>9Fw4lMu>!O4\?(ɓ%4^/O/ik*|_(zCo/Gva2zY?1ǎ&mz:zGpD~ Z9>dӖYT2-{%D/ԯ hpT<$VlwJބ^FE(qt&=Sm~ O-otC*E) i gGgaȌ*\,W` +endstream +endobj +2191 0 obj << +/Type /Page +/Contents 2192 0 R +/Resources 2190 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2194 0 R +/Annots [ 2182 0 R 2183 0 R 2188 0 R 2189 0 R ] +>> endobj +2182 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [469.858 719.912 489.285 730.816] +/A << /S /GoTo /D (section.17.5) >> +>> endobj +2183 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [112.229 707.957 129.166 718.861] +/A << /S /GoTo /D (section.17.5) >> +>> endobj +2188 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [381.646 559.912 401.073 571.389] +/A << /S /GoTo /D (section.17.5) >> +>> endobj +2189 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [425.362 559.912 442.299 571.389] +/A << /S /GoTo /D (section.17.5) >> +>> endobj +2193 0 obj << +/D [2191 0 R /XYZ 110.6 770.89 null] +>> endobj +2190 0 obj << +/Font << /F39 979 0 R /F29 898 0 R /F41 1063 0 R /F31 899 0 R /F35 934 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2197 0 obj << +/Length 3566 +/Filter /FlateDecode +>> +stream +xڭ[I-F4~9L7GFH:WpGB >2ooDh6涸hw?~}o熃,ma͞o~+wOH Y0^~ 뱦G\RADiX q;ጱS9ܮ_n-EQwVf;ݖrK~讚&J]tqeZ*uq:a1_~w؜ozLKX-խOͰj[_Ԓ=p9>2ӈhTL蓐rd/(H xӖ22/梶VƜIEn5Z5T:'"tᬏ'T&aQޜtL#"" +  dۉd,úeqZFr'].Ljf]F)$ N,88tY5,s^X:lDÇsKZ,$+\o2lx,"t + [._{AIf !›꯽J 0_YMIv4LLʙ38=+wعW&4}PY@qX$ǽ+24,LnuNLF0!̕<QN#% љ`sK+⃔y) +%Q3Hd#0<=~џAo4F*u$"h.!k,j i0;TaǽV9$3gDD!Z94B~ȡ7Z/J51l@7WJu@>c%GQ # +=R]e aY*1$ʇlHt0`%lxdCHD!)@d4]NtVz2jL6:R hk &'&m?]hH("q3 ᑅ=Yh{r ptW*Yuj6c^jЋAb8ɄD>.x5[1)db,t"[lH +,0 5Vp +%"^XȥpeBH˜AA$s* H=/.,3HؐlYBhPy\oZF{DzJ].6eJ{sg6PRj‰gA( '"\et?.+Ȧhf]@cߖ=)EiQvTu0W@uTY,7,иХ%.J2E]5N"ֺ.Ft͔Π<݂^}QQlahOUpHL +љLEw<hf5 OL)nY٬=R~r +|%3hpd tD\oA : +L!sb`n 9s k Ryh'搜r "X}qC)H 9} OD@WBK0ceb9U0]ɯ)pu",9n~YDLLh E>OncJ|Yo/Y=TPΪUa79r@^cys)_7&LK F_Sy񲌭*=ꑆy~l D[N3>RV_Ly]!6%hEWx(XAjEi `Bt$OEKEla7{!Īa (dufdcY3rV|{]Nb +BXJ7YGmrF2eY}:qOlT:cj$I΍cԮFEElYn냀}̦Ov>6aH2w~ٮ+"4e'\W5P%݁]k衊=؉j_]gOI?݁yV2`@LVO2W7M`ZNO;*n`pֺ(TGƇԭm%_/{V& !ھZd|Yk=o1El";]ûZTnALN2[e=fwq +&0sVŴ:aAS8SׇT"8PZ ; Abc1͆`:hڥ csuFX-Fi#Pn}B́s]oJ`W}g#qo/Cs +U1+jUcQYg0̏O`7?c5^r[:k.iwhb?G gŸ(RηNbr[E{2U{2T[?]1coo+uk ΥZzod _: +endstream +endobj +2196 0 obj << +/Type /Page +/Contents 2197 0 R +/Resources 2195 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2194 0 R +>> endobj +2198 0 obj << +/D [2196 0 R /XYZ 90.925 770.89 null] +>> endobj +866 0 obj << +/D [2196 0 R /XYZ 91.925 733.028 null] +>> endobj +2195 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2201 0 obj << +/Length 1983 +/Filter /FlateDecode +>> +stream +xXK6W(UY0'M*ڪT84òDjI*$j740IuJq@tX,ta[?.R:'A)/hڼ{[ &KTod#h@~$եp;ac>oW󇢼^+lGIf5,ѩ SjH"D* px>AȌPzc :bP9Q?ˬglaFڗd[Dg+_.4hY{1O$ZHb~ʍ {^+ݩ@ESPʼnVo֋1lhX +$j@1Lsng)e;GgFxqHf+B6.iJnsSSd{p '[4P{0! CrsQJ#`z*AUW/ +2 +L!dHBr7) +ss -K` xp9 A(S HY BBI,{q*Ce༘AA@tMdqV&#o(*QxmMhV$i 5$Oڢ*j>֍eSlcsg1҉Iӿg;A3[ +r_;|' id2"H`s5{ȥP${,!2}>EmBOu'%Yg[oVRlmZ?8Զ cM)49_)A ZW=i--[r;oϊ0ZInڱS5$rHʘ-ǎ ,Çqc'YȽ؁z!}Վ>~nnAÊ^~o7E"Vkl ljGA=ܣtg3uhFTE[9 YM |X +Z{s.%4 VYWWyAg䯌5ЛE^|C2caY6^ކ#wFݸTg\Zp7,#O͏mbeބQ[ҷKn3ֶ]C)NwayՃwL9W|~5*t%98\Țs4^kcO9|U ^] G'p<>n|_uQSÞ0EynU+w$Ix}}4]9yx7>EkrRZEU< opb݃8Co׉գ>ݮj;.VS BZfC;M:Kzq} .̹艦HSWzxC*} ڃsP)981l*TAx7 \uX2y#֝=9t::ǣ7~틻0BWU!1p(Kh۹+xIy,%KTȖR\bOtχ  :c`7`cVgz@.V̈U;ci̸,h"\\T@*ݥbm$v6/@X&5vs+J3~=gUx1w+-cß6cB|*{GTghj7@R +endstream +endobj +2200 0 obj << +/Type /Page +/Contents 2201 0 R +/Resources 2199 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2194 0 R +>> endobj +2202 0 obj << +/D [2200 0 R /XYZ 110.6 770.89 null] +>> endobj +870 0 obj << +/D [2200 0 R /XYZ 91.925 733.028 null] +>> endobj +2199 0 obj << +/Font << /F39 979 0 R /F35 934 0 R /F29 898 0 R /F41 1063 0 R /F2 1201 0 R /F31 899 0 R /F50 1198 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2205 0 obj << +/Length 2037 +/Filter /FlateDecode +>> +stream +xڝX[۶~ׯ#5c @3}]qf;:4EB[Tx],@<}w10oW7"q/ yc'rW߿m?7\2׏F?V| I|/@EF^$WΜ~t'y'NDenY |߉YSa s_Ǯԙjۢ:ڹ:]ߨ,;ؔrjOuht(J3:U^"v8Ґ_]֭I~Tݗo~9(~v'E1^cQ4ja7Zs~Z@ER_~<׵= +XhY3 .C/`=viΪ<: +6@%!B/ +H@oϙtEmԨgH3 lXvpAnȽԀ^ ]MHnAyId5W󈫅wcpx_ZzN ă Č%+?ӂI}SL5m>v “2Zn^W07Ͳ58EQ Q!<š^ l025ѢBkf\@cWC?ɥ);83r܌an*S|<g*x#?n|fbAHZH*t糾`5ء1}{K+E`;diw;e]{-\}Ydw9dﴈO-Z<V=(<-\b%{QMw5MΗ Ǧg<}_oO^}l,,Vs^(_Nf=/whWmTkgaF$7 [X'5-y$xkkMt[@2(~sSkB܀"@+jx[۪R_ʻk_Pܧ!KL|xI5~i~_iM˶6=wiiAK")]>Cp=]Mrn•+^-!Kjmco/"nkx:PZиN@p$,|uɜmžI:QJ[R7unzvuC/H4/V uSXC6![T`a8vBg3|3M5P9*a845Z9 a]4>_.´T#\9m`^,ĜH!"E1S)MҪenG,5 +‹I7iѪSC*g! +V0>8 ^Ͱ=ѪoP`g +?&i,X ? rMNmw? Q +endstream +endobj +2204 0 obj << +/Type /Page +/Contents 2205 0 R +/Resources 2203 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2194 0 R +>> endobj +2206 0 obj << +/D [2204 0 R /XYZ 90.925 770.89 null] +>> endobj +874 0 obj << +/D [2204 0 R /XYZ 91.925 637.892 null] +>> endobj +878 0 obj << +/D [2204 0 R /XYZ 91.925 486.609 null] +>> endobj +2203 0 obj << +/Font << /F39 979 0 R /F41 1063 0 R /F29 898 0 R /F35 934 0 R /F58 1221 0 R /F31 899 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2210 0 obj << +/Length 1141 +/Filter /FlateDecode +>> +stream +xڕVM&-RG]99+U43C*@^o~}͌ڊ}yDDH?}̊,YQC2SZhGv\';V??,OΌD"KBOF07cMԤMŪpΣƶʤ.x$Vqn.`9*]./ +u, +KȣckrTYcI4BXKQydA +$SH=DGNGIH,b  2hfygUZ idG !kJ("#l#i^]Q JX?_'Lđ֎lXD; wSoK*e|ӛU aC#4ݪߗ~rX[y\ĥ8F@Zm92e +Y`;dT8p̹m`4eUpTK ^S-:O {yv}Y }Bn\[/*RBVyՔ:>X ypBI8`YQ셫g;ř+`P pRh3*i~ ;IN0㛥a{ "l/zikWʰ&DĶh c ~7wg Drxܢlqn\(`l^3Ȱ$ +ޢL3zn/pL/ ?!ZS$WP*kc늃r EBjܕRFNM{!j  #A )~AG:>:އp\KxZq 0mgÆA8 +J ~uwj½-F}j]s +X]kV BݏUڄ\:ˉl,JͮZzXgLCnyUHt5 Yz +|2]I iQdż!|wDp6|6r)`kMxnˇz?g +endstream +endobj +2209 0 obj << +/Type /Page +/Contents 2210 0 R +/Resources 2208 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2194 0 R +/Annots [ 2207 0 R 2212 0 R ] +>> endobj +2207 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [433.336 519.065 491.776 529.969] +/Subtype/Link/A<> +>> endobj +2212 0 obj << +/Type /Annot +/Border[0 0 0]/H/I/C[0 1 1] +/Rect [90.929 509.167 117.27 518.014] +/Subtype/Link/A<> +>> endobj +2211 0 obj << +/D [2209 0 R /XYZ 110.6 770.89 null] +>> endobj +882 0 obj << +/D [2209 0 R /XYZ 91.925 733.028 null] +>> endobj +886 0 obj << +/D [2209 0 R /XYZ 91.925 494.473 null] +>> endobj +890 0 obj << +/D [2209 0 R /XYZ 91.925 260.385 null] +>> endobj +2208 0 obj << +/Font << /F35 934 0 R /F29 898 0 R /F41 1063 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2328 0 obj << +/Length 1031 +/Filter /FlateDecode +>> +stream +xڽYMs0WpH2pL8uϤ=(Ěb6`LLm=9o*{w7Ar>8zRzOco{Bw}圤^.( +1Wuy| {;q7.E~0;N递Z5iF)$1Čjz$34yCaK`%`a;zie/725x>JU7V6Ek2lU\b&Zl XiOwǢ~@,W!d dEF3\dʼns6#JA&](N;\aLa@('7/PC2] +ġlj@ RXH,8$ȝE A.u.6K0,É+3MU YSp sژLԿ߭Z,Է*#n3OnM3EȀPg珨G@Yefx$ Q6Vn[etZE.pw&*ugʹ]+KP^!S&,"zEaI@U^8Μ{.wo{TRûY +^=ʈ{rxl'V(n9,fl>VP4v^6!*fȕz.7HN]$S)`no@^v"jJGHj݂7DW5{iUYcC +F;AEFߓףiKˮ-E).JGGJxGJh!lnq'T׶P}Pmx:Qvf$gvo+hm0倬0,u]po+mʼn0vAXos,8bt4C +.T9HiMV. B|?kۛHѨEL$IzD]Mqy +endstream +endobj +2327 0 obj << +/Type /Page +/Contents 2328 0 R +/Resources 2326 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2194 0 R +/Annots [ 2213 0 R 2214 0 R 2215 0 R 2216 0 R 2217 0 R 2218 0 R 2219 0 R 2220 0 R 2221 0 R 2222 0 R 2223 0 R 2224 0 R 2225 0 R 2226 0 R 2227 0 R 2228 0 R 2229 0 R 2230 0 R 2231 0 R 2232 0 R 2233 0 R 2234 0 R 2235 0 R 2236 0 R 2237 0 R 2238 0 R 2239 0 R 2240 0 R 2241 0 R 2242 0 R 2243 0 R 2244 0 R 2245 0 R 2246 0 R 2247 0 R 2248 0 R 2249 0 R 2250 0 R 2251 0 R 2252 0 R 2253 0 R 2254 0 R 2255 0 R 2256 0 R 2257 0 R 2258 0 R 2259 0 R 2260 0 R 2261 0 R 2262 0 R 2263 0 R 2264 0 R 2265 0 R 2266 0 R 2267 0 R 2268 0 R 2269 0 R 2270 0 R 2271 0 R 2272 0 R 2273 0 R 2274 0 R 2275 0 R 2276 0 R 2277 0 R 2278 0 R 2279 0 R 2280 0 R 2281 0 R 2282 0 R 2283 0 R 2284 0 R 2285 0 R 2286 0 R 2287 0 R 2288 0 R 2289 0 R 2290 0 R 2291 0 R 2292 0 R 2293 0 R 2294 0 R 2295 0 R 2296 0 R 2297 0 R 2298 0 R 2299 0 R 2300 0 R 2301 0 R 2302 0 R 2303 0 R 2304 0 R 2305 0 R 2306 0 R 2307 0 R 2308 0 R 2309 0 R 2310 0 R 2311 0 R 2312 0 R 2313 0 R 2314 0 R 2315 0 R 2316 0 R 2317 0 R 2318 0 R 2319 0 R 2320 0 R 2321 0 R 2322 0 R 2323 0 R ] +>> endobj +2213 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.663 613.59 141.618 623.777] +/A << /S /GoTo /D (page.70) >> +>> endobj +2214 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.558 601.635 145.494 611.822] +/A << /S /GoTo /D (page.137) >> +>> endobj +2215 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [116.941 589.68 133.878 599.867] +/A << /S /GoTo /D (page.178) >> +>> endobj +2216 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [137.424 577.008 149.379 587.912] +/A << /S /GoTo /D (page.30) >> +>> endobj +2217 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [152.368 577.008 164.323 587.912] +/A << /S /GoTo /D (page.32) >> +>> endobj +2218 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [167.312 577.008 179.267 587.912] +/A << /S /GoTo /D (page.33) >> +>> endobj +2219 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [118.496 565.052 130.451 575.956] +/A << /S /GoTo /D (page.36) >> +>> endobj +2220 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [133.44 565.052 150.376 575.956] +/A << /S /GoTo /D (page.171) >> +>> endobj +2221 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [153.365 565.052 170.301 575.956] +/A << /S /GoTo /D (page.172) >> +>> endobj +2222 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [152.358 553.097 164.313 564.001] +/A << /S /GoTo /D (page.37) >> +>> endobj +2223 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.868 541.859 166.804 552.046] +/A << /S /GoTo /D (page.172) >> +>> endobj +2224 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [138.53 529.904 150.485 540.091] +/A << /S /GoTo /D (page.36) >> +>> endobj +2225 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.726 517.232 127.681 528.136] +/A << /S /GoTo /D (page.52) >> +>> endobj +2226 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.73 505.994 131.666 516.181] +/A << /S /GoTo /D (page.164) >> +>> endobj +2227 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [138.121 494.039 155.058 504.225] +/A << /S /GoTo /D (page.164) >> +>> endobj +2228 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [158.047 494.039 174.983 504.225] +/A << /S /GoTo /D (page.177) >> +>> endobj +2229 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [177.972 494.039 194.909 504.225] +/A << /S /GoTo /D (page.208) >> +>> endobj +2230 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [118.047 472.978 134.984 483.164] +/A << /S /GoTo /D (page.198) >> +>> endobj +2231 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.116 461.023 141.071 471.209] +/A << /S /GoTo /D (page.25) >> +>> endobj +2232 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.277 439.962 132.214 450.148] +/A << /S /GoTo /D (page.150) >> +>> endobj +2233 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [116.931 428.007 133.868 438.193] +/A << /S /GoTo /D (page.178) >> +>> endobj +2234 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [114.879 416.051 126.834 426.238] +/A << /S /GoTo /D (page.28) >> +>> endobj +2235 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [117.499 404.096 129.454 414.283] +/A << /S /GoTo /D (page.72) >> +>> endobj +2236 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [132.443 404.096 144.398 414.283] +/A << /S /GoTo /D (page.79) >> +>> endobj +2237 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [148.761 391.424 165.698 402.328] +/A << /S /GoTo /D (page.115) >> +>> endobj +2238 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.798 380.186 137.753 390.373] +/A << /S /GoTo /D (page.72) >> +>> endobj +2239 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [118.605 368.231 130.56 378.417] +/A << /S /GoTo /D (page.51) >> +>> endobj +2240 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [133.549 368.231 145.504 378.417] +/A << /S /GoTo /D (page.99) >> +>> endobj +2241 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.088 356.276 151.043 366.462] +/A << /S /GoTo /D (page.12) >> +>> endobj +2242 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [120.269 343.603 132.224 354.507] +/A << /S /GoTo /D (page.28) >> +>> endobj +2243 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.163 332.365 131.118 342.552] +/A << /S /GoTo /D (page.22) >> +>> endobj +2244 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.194 319.693 152.149 330.597] +/A << /S /GoTo /D (page.22) >> +>> endobj +2245 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [135.212 308.455 147.168 318.642] +/A << /S /GoTo /D (page.20) >> +>> endobj +2246 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [151.153 295.782 163.108 306.686] +/A << /S /GoTo /D (page.20) >> +>> endobj +2247 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.194 283.827 152.149 294.731] +/A << /S /GoTo /D (page.18) >> +>> endobj +2248 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [155.138 283.827 167.093 294.731] +/A << /S /GoTo /D (page.21) >> +>> endobj +2249 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [170.082 283.827 182.037 294.731] +/A << /S /GoTo /D (page.33) >> +>> endobj +2250 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.493 271.872 152.448 282.776] +/A << /S /GoTo /D (page.21) >> +>> endobj +2251 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.555 260.634 154.51 270.821] +/A << /S /GoTo /D (page.66) >> +>> endobj +2252 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [157.499 260.634 169.454 270.821] +/A << /S /GoTo /D (page.76) >> +>> endobj +2253 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [172.443 260.634 189.379 270.821] +/A << /S /GoTo /D (page.135) >> +>> endobj +2254 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.883 248.679 141.838 258.866] +/A << /S /GoTo /D (page.51) >> +>> endobj +2255 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [144.827 248.679 156.782 258.866] +/A << /S /GoTo /D (page.99) >> +>> endobj +2256 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [132.184 236.007 144.139 246.911] +/A << /S /GoTo /D (page.28) >> +>> endobj +2257 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [137.564 215.663 149.519 225.85] +/A << /S /GoTo /D (page.66) >> +>> endobj +2258 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [152.508 215.663 164.463 225.85] +/A << /S /GoTo /D (page.77) >> +>> endobj +2259 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [133.549 191.753 145.504 201.939] +/A << /S /GoTo /D (page.16) >> +>> endobj +2260 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.327 179.08 143.282 189.984] +/A << /S /GoTo /D (page.84) >> +>> endobj +2261 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.555 167.125 154.51 178.029] +/A << /S /GoTo /D (page.84) >> +>> endobj +2262 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [125.24 155.887 137.195 166.074] +/A << /S /GoTo /D (page.28) >> +>> endobj +2263 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [111.402 134.826 128.338 145.013] +/A << /S /GoTo /D (page.150) >> +>> endobj +2264 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.327 134.826 148.264 145.013] +/A << /S /GoTo /D (page.151) >> +>> endobj +2265 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [121.763 122.154 138.7 133.058] +/A << /S /GoTo /D (page.205) >> +>> endobj +2266 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [141.688 122.154 158.625 133.058] +/A << /S /GoTo /D (page.207) >> +>> endobj +2267 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [136.308 110.199 153.245 121.103] +/A << /S /GoTo /D (page.203) >> +>> endobj +2268 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.184 98.244 157.12 109.147] +/A << /S /GoTo /D (page.203) >> +>> endobj +2269 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [151.81 86.288 168.747 97.192] +/A << /S /GoTo /D (page.203) >> +>> endobj +2270 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [171.736 86.288 188.672 97.192] +/A << /S /GoTo /D (page.205) >> +>> endobj +2271 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.131 613.59 367.068 623.777] +/A << /S /GoTo /D (page.207) >> +>> endobj +2272 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [357.325 600.918 374.261 611.822] +/A << /S /GoTo /D (page.206) >> +>> endobj +2273 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [377.25 600.918 394.186 611.822] +/A << /S /GoTo /D (page.207) >> +>> endobj +2274 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.689 588.963 367.626 599.867] +/A << /S /GoTo /D (page.203) >> +>> endobj +2275 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.624 577.008 342.56 587.912] +/A << /S /GoTo /D (page.179) >> +>> endobj +2276 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.592 565.052 361.529 575.956] +/A << /S /GoTo /D (page.161) >> +>> endobj +2277 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [364.518 565.052 381.454 575.956] +/A << /S /GoTo /D (page.162) >> +>> endobj +2278 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [348.468 553.097 365.404 564.001] +/A << /S /GoTo /D (page.131) >> +>> endobj +2279 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [337.947 541.859 349.903 552.046] +/A << /S /GoTo /D (page.28) >> +>> endobj +2280 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [369.758 529.904 386.694 540.091] +/A << /S /GoTo /D (page.110) >> +>> endobj +2281 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.072 517.949 351.008 528.136] +/A << /S /GoTo /D (page.176) >> +>> endobj +2282 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [332.259 505.994 344.214 516.181] +/A << /S /GoTo /D (page.57) >> +>> endobj +2283 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.203 505.994 364.139 516.181] +/A << /S /GoTo /D (page.176) >> +>> endobj +2284 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [324.677 484.363 336.632 494.55] +/A << /S /GoTo /D (page.40) >> +>> endobj +2285 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.621 484.363 351.576 494.55] +/A << /S /GoTo /D (page.64) >> +>> endobj +2286 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [315.82 472.408 327.775 482.595] +/A << /S /GoTo /D (page.45) >> +>> endobj +2287 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.135 459.735 342.072 470.639] +/A << /S /GoTo /D (page.206) >> +>> endobj +2288 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.061 459.735 361.997 470.639] +/A << /S /GoTo /D (page.207) >> +>> endobj +2289 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [313.609 448.498 330.546 458.684] +/A << /S /GoTo /D (page.153) >> +>> endobj +2290 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [333.534 448.498 350.471 458.684] +/A << /S /GoTo /D (page.154) >> +>> endobj +2291 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [349.883 436.542 366.819 446.729] +/A << /S /GoTo /D (page.153) >> +>> endobj +2292 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [327.995 424.587 344.931 434.774] +/A << /S /GoTo /D (page.154) >> +>> endobj +2293 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [327.995 412.632 344.931 422.819] +/A << /S /GoTo /D (page.153) >> +>> endobj +2294 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [333.823 400.677 345.778 410.864] +/A << /S /GoTo /D (page.47) >> +>> endobj +2295 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [348.767 400.677 365.703 410.864] +/A << /S /GoTo /D (page.175) >> +>> endobj +2296 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.746 388.722 352.682 398.908] +/A << /S /GoTo /D (page.166) >> +>> endobj +2297 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.621 376.767 356.557 386.953] +/A << /S /GoTo /D (page.165) >> +>> endobj +2298 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [362.455 364.811 379.392 374.998] +/A << /S /GoTo /D (page.177) >> +>> endobj +2299 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [382.381 364.811 399.317 374.998] +/A << /S /GoTo /D (page.208) >> +>> endobj +2300 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [353.997 352.856 370.934 363.043] +/A << /S /GoTo /D (page.176) >> +>> endobj +2301 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [353.748 340.901 370.685 351.088] +/A << /S /GoTo /D (page.175) >> +>> endobj +2302 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [358.988 328.946 375.925 339.133] +/A << /S /GoTo /D (page.177) >> +>> endobj +2303 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [366.57 316.991 383.507 327.177] +/A << /S /GoTo /D (page.174) >> +>> endobj +2304 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.726 295.36 352.662 305.547] +/A << /S /GoTo /D (page.101) >> +>> endobj +2305 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [358.858 273.729 370.814 283.916] +/A << /S /GoTo /D (page.16) >> +>> endobj +2306 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.717 252.098 352.672 262.285] +/A << /S /GoTo /D (page.15) >> +>> endobj +2307 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [306.954 240.143 323.89 250.33] +/A << /S /GoTo /D (page.151) >> +>> endobj +2308 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [322.306 228.188 334.261 238.375] +/A << /S /GoTo /D (page.88) >> +>> endobj +2309 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [337.25 228.188 354.187 238.375] +/A << /S /GoTo /D (page.176) >> +>> endobj +2310 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [336.284 216.233 348.239 226.42] +/A << /S /GoTo /D (page.79) >> +>> endobj +2311 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.735 204.278 347.691 214.464] +/A << /S /GoTo /D (page.69) >> +>> endobj +2312 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.679 204.278 362.635 214.464] +/A << /S /GoTo /D (page.90) >> +>> endobj +2313 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [323.013 192.323 339.95 202.509] +/A << /S /GoTo /D (page.179) >> +>> endobj +2314 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.068 180.367 347.023 190.554] +/A << /S /GoTo /D (page.94) >> +>> endobj +2315 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.491 168.412 351.446 178.599] +/A << /S /GoTo /D (page.51) >> +>> endobj +2316 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [354.435 168.412 366.39 178.599] +/A << /S /GoTo /D (page.53) >> +>> endobj +2317 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [369.379 168.412 381.334 178.599] +/A << /S /GoTo /D (page.94) >> +>> endobj +2318 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.939 156.457 354.894 166.644] +/A << /S /GoTo /D (page.99) >> +>> endobj +2319 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [354.216 144.502 366.172 154.689] +/A << /S /GoTo /D (page.99) >> +>> endobj +2320 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [387.212 131.829 399.167 142.733] +/A << /S /GoTo /D (page.96) >> +>> endobj +2321 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.63 119.874 351.566 130.778] +/A << /S /GoTo /D (page.179) >> +>> endobj +2322 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [331.302 108.636 348.239 118.823] +/A << /S /GoTo /D (page.180) >> +>> endobj +2323 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [326.879 87.006 338.834 97.192] +/A << /S /GoTo /D (page.18) >> +>> endobj +2329 0 obj << +/D [2327 0 R /XYZ 90.925 770.89 null] +>> endobj +2326 0 obj << +/Font << /F35 934 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2461 0 obj << +/Length 1260 +/Filter /FlateDecode +>> +stream +xڽYs6~c 4$vK3n8Ts*tqW8V7/g ߮vW~ o!l1UyYѐz{/N KP{һpqyvv=]a/AGI$3J +,On8ʻ>C?a/PҙǗ25}Uww4HSq̧"" 0B=k|4:\OcQV ZJM]O. ]Oy (tC9r?ɀ@ oUx1u-s~)sv` 5hbO(LB9ñ})^UZuxA%+dVHDZHvA0ʋ{oD(KJ%)M_>mw +D3bҏ\fj{OVMCg6SqŽ\E3بJ;.5+^.:A$};^*% _8|mvv6| [srXBM9#`//Nj慫=o١#Uhh׼ eg-Ybga7m B\U<$x4|UoX w[3)Wf3!*QfK(3_wb- 1^ FG$1}JόcDe`b L׫Ah[2Xd`L>l ?O cCq4WUK6mq h43nѺ.W<ؕW|6 @vkզ͘DE2$ZKXw8APӯ;%r*en'W{mb漫| +u˜31蠟|> endobj +2324 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.875 720.63 148.811 730.816] +/A << /S /GoTo /D (page.201) >> +>> endobj +2325 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [121.823 707.957 138.759 718.861] +/A << /S /GoTo /D (page.201) >> +>> endobj +2330 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.277 696.719 132.214 706.906] +/A << /S /GoTo /D (page.180) >> +>> endobj +2331 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [130.769 674.084 142.724 684.988] +/A << /S /GoTo /D (page.83) >> +>> endobj +2332 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [145.713 674.084 157.668 684.988] +/A << /S /GoTo /D (page.84) >> +>> endobj +2333 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.663 662.129 141.618 673.033] +/A << /S /GoTo /D (page.83) >> +>> endobj +2334 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [130.779 650.891 142.734 661.078] +/A << /S /GoTo /D (page.67) >> +>> endobj +2335 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [145.723 650.891 157.678 661.078] +/A << /S /GoTo /D (page.78) >> +>> endobj +2336 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.589 638.936 161.544 649.123] +/A << /S /GoTo /D (page.70) >> +>> endobj +2337 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [137.424 626.981 149.379 637.167] +/A << /S /GoTo /D (page.79) >> +>> endobj +2338 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [150.694 614.308 162.65 625.212] +/A << /S /GoTo /D (page.83) >> +>> endobj +2339 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [138.53 603.07 150.485 613.257] +/A << /S /GoTo /D (page.68) >> +>> endobj +2340 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [153.474 603.07 165.429 613.257] +/A << /S /GoTo /D (page.81) >> +>> endobj +2341 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [143.462 591.115 155.417 601.302] +/A << /S /GoTo /D (page.69) >> +>> endobj +2342 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [158.406 591.115 170.361 601.302] +/A << /S /GoTo /D (page.70) >> +>> endobj +2343 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [173.349 591.115 185.305 601.302] +/A << /S /GoTo /D (page.78) >> +>> endobj +2344 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [134.655 579.16 146.61 589.347] +/A << /S /GoTo /D (page.14) >> +>> endobj +2345 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.599 579.16 166.535 589.347] +/A << /S /GoTo /D (page.177) >> +>> endobj +2346 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.524 579.16 186.46 589.347] +/A << /S /GoTo /D (page.184) >> +>> endobj +2347 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [136.866 567.205 153.803 577.392] +/A << /S /GoTo /D (page.178) >> +>> endobj +2348 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [136.856 555.25 153.793 565.436] +/A << /S /GoTo /D (page.178) >> +>> endobj +2349 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [141.141 542.577 158.077 553.481] +/A << /S /GoTo /D (page.179) >> +>> endobj +2350 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [138.53 531.339 155.467 541.526] +/A << /S /GoTo /D (page.179) >> +>> endobj +2351 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.589 519.384 166.525 529.571] +/A << /S /GoTo /D (page.180) >> +>> endobj +2352 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [169.504 507.429 186.44 517.616] +/A << /S /GoTo /D (page.180) >> +>> endobj +2353 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [150.396 495.474 167.332 505.661] +/A << /S /GoTo /D (page.181) >> +>> endobj +2354 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.732 482.801 157.668 493.705] +/A << /S /GoTo /D (page.182) >> +>> endobj +2355 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.742 470.846 157.678 481.75] +/A << /S /GoTo /D (page.182) >> +>> endobj +2356 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [145.165 458.891 162.102 469.795] +/A << /S /GoTo /D (page.183) >> +>> endobj +2357 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [146.261 447.653 163.197 457.84] +/A << /S /GoTo /D (page.183) >> +>> endobj +2358 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [166.794 434.981 183.73 445.885] +/A << /S /GoTo /D (page.183) >> +>> endobj +2359 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [148.493 423.743 165.429 433.93] +/A << /S /GoTo /D (page.183) >> +>> endobj +2360 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [141.848 411.788 158.784 421.974] +/A << /S /GoTo /D (page.183) >> +>> endobj +2361 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [144.727 399.115 161.664 410.019] +/A << /S /GoTo /D (page.183) >> +>> endobj +2362 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [150.146 375.205 167.083 386.109] +/A << /S /GoTo /D (page.179) >> +>> endobj +2363 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [146.819 363.967 163.756 374.154] +/A << /S /GoTo /D (page.180) >> +>> endobj +2364 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [135.203 352.012 152.139 362.199] +/A << /S /GoTo /D (page.180) >> +>> endobj +2365 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [117.489 330.094 134.426 340.281] +/A << /S /GoTo /D (page.176) >> +>> endobj +2366 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.663 318.139 146.6 328.326] +/A << /S /GoTo /D (page.180) >> +>> endobj +2367 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.578 306.184 166.515 316.37] +/A << /S /GoTo /D (page.180) >> +>> endobj +2368 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [132.433 294.229 144.388 304.415] +/A << /S /GoTo /D (page.17) >> +>> endobj +2369 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.306 281.556 154.261 292.46] +/A << /S /GoTo /D (page.17) >> +>> endobj +2370 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.589 270.318 161.544 280.505] +/A << /S /GoTo /D (page.17) >> +>> endobj +2371 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [168.249 258.363 180.204 268.55] +/A << /S /GoTo /D (page.17) >> +>> endobj +2372 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [137.414 246.408 149.369 256.595] +/A << /S /GoTo /D (page.17) >> +>> endobj +2373 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [134.097 234.453 146.052 244.639] +/A << /S /GoTo /D (page.17) >> +>> endobj +2374 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [120.259 211.818 132.214 222.722] +/A << /S /GoTo /D (page.63) >> +>> endobj +2375 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [162.868 199.862 179.805 210.766] +/A << /S /GoTo /D (page.121) >> +>> endobj +2376 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [195.246 187.907 212.183 198.811] +/A << /S /GoTo /D (page.121) >> +>> endobj +2377 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.346 175.952 138.301 186.856] +/A << /S /GoTo /D (page.63) >> +>> endobj +2378 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [135.193 163.997 147.148 174.901] +/A << /S /GoTo /D (page.20) >> +>> endobj +2379 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [150.137 163.997 162.092 174.901] +/A << /S /GoTo /D (page.34) >> +>> endobj +2380 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [165.08 163.997 177.036 174.901] +/A << /S /GoTo /D (page.47) >> +>> endobj +2381 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [180.024 163.997 196.961 174.901] +/A << /S /GoTo /D (page.131) >> +>> endobj +2382 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [199.95 163.997 216.886 174.901] +/A << /S /GoTo /D (page.137) >> +>> endobj +2383 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [219.875 163.997 236.811 174.901] +/A << /S /GoTo /D (page.138) >> +>> endobj +2384 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [159.003 152.759 175.939 162.946] +/A << /S /GoTo /D (page.139) >> +>> endobj +2385 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [178.928 152.759 195.865 162.946] +/A << /S /GoTo /D (page.190) >> +>> endobj +2386 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.436 140.087 180.373 150.991] +/A << /S /GoTo /D (page.186) >> +>> endobj +2387 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [142.306 128.131 159.243 139.035] +/A << /S /GoTo /D (page.190) >> +>> endobj +2388 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.041 116.894 165.977 127.08] +/A << /S /GoTo /D (page.140) >> +>> endobj +2389 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [164.542 104.221 181.479 115.125] +/A << /S /GoTo /D (page.191) >> +>> endobj +2390 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [146.271 92.266 163.208 103.17] +/A << /S /GoTo /D (page.139) >> +>> endobj +2391 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [361.2 720.63 378.136 730.816] +/A << /S /GoTo /D (page.142) >> +>> endobj +2392 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [332.976 708.674 349.913 718.861] +/A << /S /GoTo /D (page.141) >> +>> endobj +2393 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.602 696.002 361.539 706.906] +/A << /S /GoTo /D (page.140) >> +>> endobj +2394 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.493 684.047 361.43 694.951] +/A << /S /GoTo /D (page.139) >> +>> endobj +2395 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [337.389 672.092 354.326 682.996] +/A << /S /GoTo /D (page.185) >> +>> endobj +2396 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.053 660.854 355.99 671.04] +/A << /S /GoTo /D (page.150) >> +>> endobj +2397 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.879 648.899 351.816 659.085] +/A << /S /GoTo /D (page.181) >> +>> endobj +2398 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [357.315 624.271 374.251 635.175] +/A << /S /GoTo /D (page.185) >> +>> endobj +2399 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.576 613.033 347.532 623.22] +/A << /S /GoTo /D (page.79) >> +>> endobj +2400 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [333.215 601.078 345.17 611.265] +/A << /S /GoTo /D (page.69) >> +>> endobj +2401 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.842 579.16 340.797 589.347] +/A << /S /GoTo /D (page.41) >> +>> endobj +2402 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [343.786 579.16 355.741 589.347] +/A << /S /GoTo /D (page.42) >> +>> endobj +2403 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [358.73 579.16 370.685 589.347] +/A << /S /GoTo /D (page.64) >> +>> endobj +2404 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [373.674 579.16 385.629 589.347] +/A << /S /GoTo /D (page.76) >> +>> endobj +2405 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.433 567.205 361.369 577.392] +/A << /S /GoTo /D (page.167) >> +>> endobj +2406 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [355.671 555.25 372.607 565.436] +/A << /S /GoTo /D (page.167) >> +>> endobj +2407 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [375.596 555.25 392.533 565.436] +/A << /S /GoTo /D (page.170) >> +>> endobj +2408 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [366.899 542.577 383.835 553.481] +/A << /S /GoTo /D (page.171) >> +>> endobj +2409 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [386.824 542.577 403.761 553.481] +/A << /S /GoTo /D (page.172) >> +>> endobj +2410 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.188 531.339 352.124 541.526] +/A << /S /GoTo /D (page.169) >> +>> endobj +2411 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [353.449 518.667 370.386 529.571] +/A << /S /GoTo /D (page.167) >> +>> endobj +2412 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.929 507.429 359.865 517.616] +/A << /S /GoTo /D (page.167) >> +>> endobj +2413 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [333.674 495.474 345.629 505.661] +/A << /S /GoTo /D (page.88) >> +>> endobj +2414 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [348.618 495.474 365.554 505.661] +/A << /S /GoTo /D (page.167) >> +>> endobj +2415 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [368.543 495.474 385.479 505.661] +/A << /S /GoTo /D (page.168) >> +>> endobj +2416 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.215 482.801 342.152 493.705] +/A << /S /GoTo /D (page.182) >> +>> endobj +2417 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [324.827 471.564 336.782 481.75] +/A << /S /GoTo /D (page.32) >> +>> endobj +2418 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.702 459.608 340.657 469.795] +/A << /S /GoTo /D (page.45) >> +>> endobj +2419 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [328.044 447.653 340 457.84] +/A << /S /GoTo /D (page.71) >> +>> endobj +2420 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.988 447.653 354.944 457.84] +/A << /S /GoTo /D (page.74) >> +>> endobj +2421 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [357.932 447.653 369.887 457.84] +/A << /S /GoTo /D (page.87) >> +>> endobj +2422 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.169 435.698 352.124 445.885] +/A << /S /GoTo /D (page.74) >> +>> endobj +2423 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [327.487 423.026 339.442 433.93] +/A << /S /GoTo /D (page.64) >> +>> endobj +2424 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [343.477 411.788 355.432 421.974] +/A << /S /GoTo /D (page.48) >> +>> endobj +2425 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.707 399.833 352.662 410.019] +/A << /S /GoTo /D (page.48) >> +>> endobj +2426 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [355.651 399.833 372.587 410.019] +/A << /S /GoTo /D (page.165) >> +>> endobj +2427 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.582 387.877 361.519 398.064] +/A << /S /GoTo /D (page.165) >> +>> endobj +2428 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [334.072 375.205 351.008 386.109] +/A << /S /GoTo /D (page.194) >> +>> endobj +2429 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.717 363.25 352.672 374.154] +/A << /S /GoTo /D (page.59) >> +>> endobj +2430 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [355.661 363.25 367.616 374.154] +/A << /S /GoTo /D (page.86) >> +>> endobj +2431 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.829 351.295 354.784 362.199] +/A << /S /GoTo /D (page.89) >> +>> endobj +2432 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [352.035 340.057 363.99 350.243] +/A << /S /GoTo /D (page.88) >> +>> endobj +2433 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [333.982 327.384 345.938 338.288] +/A << /S /GoTo /D (page.80) >> +>> endobj +2434 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [348.926 327.384 360.881 338.288] +/A << /S /GoTo /D (page.86) >> +>> endobj +2435 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [337.947 316.146 349.902 326.333] +/A << /S /GoTo /D (page.71) >> +>> endobj +2436 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [352.891 316.146 364.846 326.333] +/A << /S /GoTo /D (page.74) >> +>> endobj +2437 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.783 304.191 337.738 314.378] +/A << /S /GoTo /D (page.71) >> +>> endobj +2438 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.727 304.191 352.682 314.378] +/A << /S /GoTo /D (page.74) >> +>> endobj +2439 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [325.225 291.519 337.18 302.423] +/A << /S /GoTo /D (page.64) >> +>> endobj +2440 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.169 291.519 357.106 302.423] +/A << /S /GoTo /D (page.182) >> +>> endobj +2441 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.621 280.281 351.576 290.468] +/A << /S /GoTo /D (page.74) >> +>> endobj +2442 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [354.565 280.281 366.52 290.468] +/A << /S /GoTo /D (page.87) >> +>> endobj +2443 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [358.58 268.326 370.535 278.512] +/A << /S /GoTo /D (page.32) >> +>> endobj +2444 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [322.455 246.408 339.392 256.595] +/A << /S /GoTo /D (page.203) >> +>> endobj +2445 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [320.792 234.453 332.747 244.639] +/A << /S /GoTo /D (page.87) >> +>> endobj +2446 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [318.58 222.498 330.535 232.684] +/A << /S /GoTo /D (page.28) >> +>> endobj +2447 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [329.091 210.542 341.046 220.729] +/A << /S /GoTo /D (page.40) >> +>> endobj +2448 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [355.671 198.587 367.626 208.774] +/A << /S /GoTo /D (page.58) >> +>> endobj +2449 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [360.353 185.915 377.29 196.819] +/A << /S /GoTo /D (page.115) >> +>> endobj +2450 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [329.648 173.96 346.585 184.864] +/A << /S /GoTo /D (page.183) >> +>> endobj +2451 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.688 162.722 357.643 172.908] +/A << /S /GoTo /D (page.79) >> +>> endobj +2452 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [327.985 150.049 344.921 160.953] +/A << /S /GoTo /D (page.161) >> +>> endobj +2453 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.98 138.811 375.935 148.998] +/A << /S /GoTo /D (page.13) >> +>> endobj +2454 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.362 126.139 359.317 137.043] +/A << /S /GoTo /D (page.14) >> +>> endobj +2455 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [365.743 114.901 377.698 125.088] +/A << /S /GoTo /D (page.14) >> +>> endobj +2456 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [358.988 102.946 370.943 113.133] +/A << /S /GoTo /D (page.14) >> +>> endobj +2457 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [371.94 90.991 383.895 101.177] +/A << /S /GoTo /D (page.13) >> +>> endobj +2462 0 obj << +/D [2460 0 R /XYZ 110.6 770.89 null] +>> endobj +2459 0 obj << +/Font << /F39 979 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2599 0 obj << +/Length 1280 +/Filter /FlateDecode +>> +stream +xZMs6W(T* y]ۓL'u-錛EBPA0 Tk +bi~ۅ}oj1$^2K(b1%QEBE=߾ɧŻb鳾4f =~\H{_Yz&3{G?0wh^jȌJj^VDyySc߷7S1QbeiQ((&A& _&(3vk^+&sq;U2c1t q<Ǝ(q<P 1vde!Ϯ@=]i CL\.&+W)Y9#]DaA`*sP@9c#F-V7'"U \R`% +(oꚕ˂I G]Sf)K?Er +z-ʭh,7O*.*Wc|k9-kmF9s̞+PdQ+f1XH0Ȉ . Px-T+dJk44>n8, `ޏj`+'&ٮ_K6"il6}! +3o\.E6T*}jt-BLN\L"O`[7aڲHvLBTTwAH02߂X| mա@8+‍Z5d[LCf_oʥT:k&Aם4m>3t̹. vAk{=nvR(9,&-0.Y#؊IVeDDO%v,eZnk.*ى`ʦ ͫvqT-g .JB\#( {lr3s{ zs Asdz+?dh~z4TT D@]t +FN/yO\<\&..sq(+L,x_N_\Zoʾj93ϳq/39B8#98:,>g&o@& +endstream +endobj +2598 0 obj << +/Type /Page +/Contents 2599 0 R +/Resources 2597 0 R +/MediaBox [0 0 595.276 841.89] +/Parent 2463 0 R +/Annots [ 2458 0 R 2464 0 R 2465 0 R 2466 0 R 2467 0 R 2468 0 R 2469 0 R 2470 0 R 2471 0 R 2472 0 R 2473 0 R 2474 0 R 2475 0 R 2476 0 R 2477 0 R 2478 0 R 2479 0 R 2480 0 R 2481 0 R 2482 0 R 2483 0 R 2484 0 R 2485 0 R 2486 0 R 2487 0 R 2488 0 R 2489 0 R 2490 0 R 2491 0 R 2492 0 R 2493 0 R 2494 0 R 2495 0 R 2496 0 R 2497 0 R 2498 0 R 2499 0 R 2500 0 R 2501 0 R 2502 0 R 2503 0 R 2504 0 R 2505 0 R 2506 0 R 2507 0 R 2508 0 R 2509 0 R 2510 0 R 2511 0 R 2512 0 R 2513 0 R 2514 0 R 2515 0 R 2516 0 R 2517 0 R 2518 0 R 2519 0 R 2520 0 R 2521 0 R 2522 0 R 2523 0 R 2524 0 R 2525 0 R 2526 0 R 2527 0 R 2528 0 R 2529 0 R 2530 0 R 2531 0 R 2532 0 R 2533 0 R 2534 0 R 2535 0 R 2536 0 R 2537 0 R 2538 0 R 2539 0 R 2540 0 R 2541 0 R 2542 0 R 2543 0 R 2544 0 R 2545 0 R 2546 0 R 2547 0 R 2548 0 R 2549 0 R 2550 0 R 2551 0 R 2552 0 R 2553 0 R 2554 0 R 2555 0 R 2556 0 R 2557 0 R 2558 0 R 2559 0 R 2560 0 R 2561 0 R 2562 0 R 2563 0 R 2564 0 R 2565 0 R 2566 0 R 2567 0 R 2568 0 R 2569 0 R 2570 0 R 2571 0 R 2572 0 R 2573 0 R 2574 0 R 2575 0 R 2576 0 R 2577 0 R 2578 0 R 2579 0 R 2580 0 R 2581 0 R 2582 0 R 2583 0 R 2584 0 R 2585 0 R 2586 0 R 2587 0 R 2588 0 R 2589 0 R 2590 0 R 2591 0 R 2592 0 R 2593 0 R 2594 0 R 2595 0 R 2596 0 R ] +>> endobj +2458 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [155.675 719.912 167.631 730.816] +/A << /S /GoTo /D (page.22) >> +>> endobj +2464 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.336 698.712 143.272 708.898] +/A << /S /GoTo /D (page.183) >> +>> endobj +2465 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [146.869 686.039 163.805 696.943] +/A << /S /GoTo /D (page.183) >> +>> endobj +2466 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [120.259 674.084 132.214 684.988] +/A << /S /GoTo /D (page.31) >> +>> endobj +2467 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [135.203 674.084 147.158 684.988] +/A << /S /GoTo /D (page.39) >> +>> endobj +2468 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [150.147 674.084 162.102 684.988] +/A << /S /GoTo /D (page.58) >> +>> endobj +2469 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [165.091 674.084 177.046 684.988] +/A << /S /GoTo /D (page.63) >> +>> endobj +2470 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [180.035 674.084 191.99 684.988] +/A << /S /GoTo /D (page.71) >> +>> endobj +2471 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [194.979 674.084 206.934 684.988] +/A << /S /GoTo /D (page.74) >> +>> endobj +2472 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [209.923 674.084 226.859 684.988] +/A << /S /GoTo /D (page.199) >> +>> endobj +2473 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [137.972 662.846 154.909 673.033] +/A << /S /GoTo /D (page.199) >> +>> endobj +2474 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [137.424 650.891 154.361 661.078] +/A << /S /GoTo /D (page.200) >> +>> endobj +2475 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [141.28 638.936 158.216 649.123] +/A << /S /GoTo /D (page.200) >> +>> endobj +2476 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.337 626.981 148.274 637.167] +/A << /S /GoTo /D (page.200) >> +>> endobj +2477 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [111.96 615.026 123.915 625.212] +/A << /S /GoTo /D (page.67) >> +>> endobj +2478 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.904 615.026 138.859 625.212] +/A << /S /GoTo /D (page.80) >> +>> endobj +2479 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [141.848 615.026 153.803 625.212] +/A << /S /GoTo /D (page.85) >> +>> endobj +2480 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [108.642 603.07 120.598 613.257] +/A << /S /GoTo /D (page.44) >> +>> endobj +2481 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.194 590.398 152.149 601.302] +/A << /S /GoTo /D (page.29) >> +>> endobj +2482 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [121.374 578.443 133.33 589.347] +/A << /S /GoTo /D (page.28) >> +>> endobj +2483 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [128.567 567.205 145.504 577.392] +/A << /S /GoTo /D (page.183) >> +>> endobj +2484 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [139.636 555.25 156.572 565.436] +/A << /S /GoTo /D (page.146) >> +>> endobj +2485 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [158.047 543.295 174.983 553.481] +/A << /S /GoTo /D (page.164) >> +>> endobj +2486 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [177.972 543.295 194.909 553.481] +/A << /S /GoTo /D (page.208) >> +>> endobj +2487 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.436 530.622 180.373 541.526] +/A << /S /GoTo /D (page.146) >> +>> endobj +2488 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [135.203 519.384 152.139 529.571] +/A << /S /GoTo /D (page.150) >> +>> endobj +2489 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.119 506.712 177.056 517.616] +/A << /S /GoTo /D (page.149) >> +>> endobj +2490 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [156.234 494.757 173.17 505.661] +/A << /S /GoTo /D (page.164) >> +>> endobj +2491 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [129.126 483.519 146.062 493.705] +/A << /S /GoTo /D (page.153) >> +>> endobj +2492 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.051 483.519 165.988 493.705] +/A << /S /GoTo /D (page.154) >> +>> endobj +2493 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [135.761 471.564 152.697 481.75] +/A << /S /GoTo /D (page.148) >> +>> endobj +2494 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [121.923 459.608 138.859 469.795] +/A << /S /GoTo /D (page.151) >> +>> endobj +2495 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [136.867 446.936 153.803 457.84] +/A << /S /GoTo /D (page.153) >> +>> endobj +2496 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [156.792 446.936 173.728 457.84] +/A << /S /GoTo /D (page.154) >> +>> endobj +2497 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [176.717 446.936 193.654 457.84] +/A << /S /GoTo /D (page.161) >> +>> endobj +2498 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [156.224 435.698 173.16 445.885] +/A << /S /GoTo /D (page.147) >> +>> endobj +2499 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [143.501 423.026 160.438 433.93] +/A << /S /GoTo /D (page.161) >> +>> endobj +2500 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [144.069 411.07 161.006 421.974] +/A << /S /GoTo /D (page.146) >> +>> endobj +2501 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [157.339 399.833 174.276 410.019] +/A << /S /GoTo /D (page.149) >> +>> endobj +2502 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [140.184 387.877 157.12 398.064] +/A << /S /GoTo /D (page.161) >> +>> endobj +2503 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [135.362 375.922 152.299 386.109] +/A << /S /GoTo /D (page.162) >> +>> endobj +2504 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [176.716 363.967 188.671 374.154] +/A << /S /GoTo /D (page.81) >> +>> endobj +2505 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [121.922 352.012 138.859 362.199] +/A << /S /GoTo /D (page.183) >> +>> endobj +2506 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [120.269 339.339 132.224 350.243] +/A << /S /GoTo /D (page.18) >> +>> endobj +2507 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [130.789 327.384 142.744 338.288] +/A << /S /GoTo /D (page.11) >> +>> endobj +2508 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [162.6 315.429 169.573 326.333] +/A << /S /GoTo /D (page.9) >> +>> endobj +2509 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.325 294.229 125.28 304.415] +/A << /S /GoTo /D (page.45) >> +>> endobj +2510 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [113.066 282.273 130.002 292.46] +/A << /S /GoTo /D (page.151) >> +>> endobj +2511 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [163.685 270.318 175.641 280.505] +/A << /S /GoTo /D (page.59) >> +>> endobj +2512 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [136.199 258.363 148.154 268.55] +/A << /S /GoTo /D (page.59) >> +>> endobj +2513 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [124.344 246.408 136.299 256.595] +/A << /S /GoTo /D (page.11) >> +>> endobj +2514 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [159.013 234.453 170.968 244.639] +/A << /S /GoTo /D (page.12) >> +>> endobj +2515 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [156.234 222.498 168.189 232.684] +/A << /S /GoTo /D (page.15) >> +>> endobj +2516 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [152.358 210.542 164.313 220.729] +/A << /S /GoTo /D (page.17) >> +>> endobj +2517 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [179.496 198.587 191.452 208.774] +/A << /S /GoTo /D (page.13) >> +>> endobj +2518 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [144.069 185.915 156.024 196.819] +/A << /S /GoTo /D (page.18) >> +>> endobj +2519 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [150.714 173.96 162.67 184.864] +/A << /S /GoTo /D (page.11) >> +>> endobj +2520 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [106.331 162.004 123.268 172.908] +/A << /S /GoTo /D (page.206) >> +>> endobj +2521 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [126.256 162.004 143.193 172.908] +/A << /S /GoTo /D (page.207) >> +>> endobj +2522 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [115.587 150.049 127.542 160.953] +/A << /S /GoTo /D (page.23) >> +>> endobj +2523 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [131.078 138.094 143.033 148.998] +/A << /S /GoTo /D (page.30) >> +>> endobj +2524 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [146.022 138.094 157.977 148.998] +/A << /S /GoTo /D (page.32) >> +>> endobj +2525 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [160.966 138.094 177.903 148.998] +/A << /S /GoTo /D (page.136) >> +>> endobj +2526 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [180.891 138.094 197.828 148.998] +/A << /S /GoTo /D (page.137) >> +>> endobj +2527 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [157.34 126.139 174.276 137.043] +/A << /S /GoTo /D (page.137) >> +>> endobj +2528 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [138.52 114.901 155.457 125.088] +/A << /S /GoTo /D (page.136) >> +>> endobj +2529 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [149.031 102.946 165.967 113.133] +/A << /S /GoTo /D (page.136) >> +>> endobj +2530 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [119.462 90.273 131.417 101.177] +/A << /S /GoTo /D (page.23) >> +>> endobj +2531 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [361.758 719.912 373.713 730.816] +/A << /S /GoTo /D (page.30) >> +>> endobj +2532 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.829 707.957 354.784 718.861] +/A << /S /GoTo /D (page.36) >> +>> endobj +2533 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [357.773 707.957 369.728 718.861] +/A << /S /GoTo /D (page.37) >> +>> endobj +2534 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.611 696.719 351.566 706.906] +/A << /S /GoTo /D (page.23) >> +>> endobj +2535 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [353.449 684.764 365.404 694.951] +/A << /S /GoTo /D (page.25) >> +>> endobj +2536 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [339.213 672.809 351.168 682.996] +/A << /S /GoTo /D (page.28) >> +>> endobj +2537 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [341.833 660.854 353.788 671.04] +/A << /S /GoTo /D (page.72) >> +>> endobj +2538 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [373.095 648.181 390.032 659.085] +/A << /S /GoTo /D (page.115) >> +>> endobj +2539 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [371.711 636.943 383.666 647.13] +/A << /S /GoTo /D (page.26) >> +>> endobj +2540 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [385.808 624.988 402.744 635.175] +/A << /S /GoTo /D (page.110) >> +>> endobj +2541 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.746 613.033 347.701 623.22] +/A << /S /GoTo /D (page.45) >> +>> endobj +2542 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [400.502 601.078 412.458 611.265] +/A << /S /GoTo /D (page.47) >> +>> endobj +2543 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.91 588.405 359.865 599.309] +/A << /S /GoTo /D (page.24) >> +>> endobj +2544 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [346.804 576.45 358.759 587.354] +/A << /S /GoTo /D (page.63) >> +>> endobj +2545 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [350.68 565.212 362.635 575.399] +/A << /S /GoTo /D (page.24) >> +>> endobj +2546 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.752 553.257 356.707 563.444] +/A << /S /GoTo /D (page.32) >> +>> endobj +2547 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [359.696 553.257 371.651 563.444] +/A << /S /GoTo /D (page.33) >> +>> endobj +2548 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [348.627 541.302 360.583 551.489] +/A << /S /GoTo /D (page.33) >> +>> endobj +2549 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.571 541.302 375.526 551.489] +/A << /S /GoTo /D (page.45) >> +>> endobj +2550 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [363.402 529.347 375.357 539.534] +/A << /S /GoTo /D (page.48) >> +>> endobj +2551 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [338.505 517.392 350.46 527.578] +/A << /S /GoTo /D (page.28) >> +>> endobj +2552 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [349.016 505.437 360.971 515.623] +/A << /S /GoTo /D (page.40) >> +>> endobj +2553 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [380.278 492.764 397.215 503.668] +/A << /S /GoTo /D (page.115) >> +>> endobj +2554 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [394.654 481.526 406.61 491.713] +/A << /S /GoTo /D (page.30) >> +>> endobj +2555 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [409.598 481.526 421.553 491.713] +/A << /S /GoTo /D (page.32) >> +>> endobj +2556 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [424.542 481.526 436.497 491.713] +/A << /S /GoTo /D (page.37) >> +>> endobj +2557 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [439.486 481.526 451.441 491.713] +/A << /S /GoTo /D (page.39) >> +>> endobj +2558 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [454.43 481.526 466.385 491.713] +/A << /S /GoTo /D (page.99) >> +>> endobj +2559 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [332.976 469.571 344.931 479.758] +/A << /S /GoTo /D (page.44) >> +>> endobj +2560 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.602 456.899 356.558 467.803] +/A << /S /GoTo /D (page.29) >> +>> endobj +2561 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [361.748 445.661 373.703 455.847] +/A << /S /GoTo /D (page.34) >> +>> endobj +2562 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [357.873 432.988 369.828 443.892] +/A << /S /GoTo /D (page.27) >> +>> endobj +2563 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [376.692 421.033 388.647 431.937] +/A << /S /GoTo /D (page.32) >> +>> endobj +2564 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [349.016 409.795 360.971 419.982] +/A << /S /GoTo /D (page.51) >> +>> endobj +2565 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [364.119 397.123 376.074 408.027] +/A << /S /GoTo /D (page.32) >> +>> endobj +2566 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [356.766 375.205 368.722 386.109] +/A << /S /GoTo /D (page.32) >> +>> endobj +2567 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [315.82 363.967 332.757 374.154] +/A << /S /GoTo /D (page.195) >> +>> endobj +2568 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [335.746 363.967 352.682 374.154] +/A << /S /GoTo /D (page.200) >> +>> endobj +2569 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [317.474 352.012 334.411 362.199] +/A << /S /GoTo /D (page.194) >> +>> endobj +2570 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [313.748 330.094 325.704 340.281] +/A << /S /GoTo /D (page.56) >> +>> endobj +2571 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [329.21 317.422 346.147 328.326] +/A << /S /GoTo /D (page.183) >> +>> endobj +2572 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [333.514 306.184 345.469 316.37] +/A << /S /GoTo /D (page.56) >> +>> endobj +2573 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [337.389 294.229 349.344 304.415] +/A << /S /GoTo /D (page.56) >> +>> endobj +2574 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [360.642 282.273 372.597 292.46] +/A << /S /GoTo /D (page.21) >> +>> endobj +2575 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [375.586 282.273 387.541 292.46] +/A << /S /GoTo /D (page.58) >> +>> endobj +2576 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [329.09 270.318 341.046 280.505] +/A << /S /GoTo /D (page.51) >> +>> endobj +2577 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [327.945 258.363 339.9 268.55] +/A << /S /GoTo /D (page.66) >> +>> endobj +2578 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [342.889 258.363 354.844 268.55] +/A << /S /GoTo /D (page.69) >> +>> endobj +2579 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [357.833 258.363 369.788 268.55] +/A << /S /GoTo /D (page.78) >> +>> endobj +2580 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [372.777 258.363 384.732 268.55] +/A << /S /GoTo /D (page.83) >> +>> endobj +2581 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [336.722 245.691 348.677 256.595] +/A << /S /GoTo /D (page.63) >> +>> endobj +2582 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [351.666 245.691 363.621 256.595] +/A << /S /GoTo /D (page.71) >> +>> endobj +2583 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [366.61 245.691 378.565 256.595] +/A << /S /GoTo /D (page.94) >> +>> endobj +2584 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [347.97 234.453 359.925 244.639] +/A << /S /GoTo /D (page.63) >> +>> endobj +2585 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [362.914 234.453 374.869 244.639] +/A << /S /GoTo /D (page.74) >> +>> endobj +2586 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [357.872 222.498 369.828 232.684] +/A << /S /GoTo /D (page.74) >> +>> endobj +2587 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [345.708 210.542 357.663 220.729] +/A << /S /GoTo /D (page.63) >> +>> endobj +2588 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [360.652 210.542 372.607 220.729] +/A << /S /GoTo /D (page.74) >> +>> endobj +2589 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [359.546 198.587 371.501 208.774] +/A << /S /GoTo /D (page.74) >> +>> endobj +2590 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [372.049 186.632 384.004 196.819] +/A << /S /GoTo /D (page.74) >> +>> endobj +2591 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [381.952 174.677 393.907 184.864] +/A << /S /GoTo /D (page.74) >> +>> endobj +2592 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [324.667 152.759 341.604 162.946] +/A << /S /GoTo /D (page.161) >> +>> endobj +2593 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [340.468 140.804 352.423 150.991] +/A << /S /GoTo /D (page.29) >> +>> endobj +2594 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [344.194 128.131 356.149 139.035] +/A << /S /GoTo /D (page.32) >> +>> endobj +2595 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [319.845 116.894 336.782 127.08] +/A << /S /GoTo /D (page.162) >> +>> endobj +2596 0 obj << +/Type /Annot +/Subtype /Link +/Border[0 0 0]/H/I/C[1 0 0] +/Rect [323.003 104.938 334.959 115.125] +/A << /S /GoTo /D (page.87) >> +>> endobj +2600 0 obj << +/D [2598 0 R /XYZ 90.925 770.89 null] +>> endobj +2597 0 obj << +/Font << /F39 979 0 R /F29 898 0 R >> +/ProcSet [ /PDF /Text ] +>> endobj +2601 0 obj +[777.8 500 777.8] +endobj +2603 0 obj +[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600] +endobj +2604 0 obj +[569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5 569.5] +endobj +2605 0 obj +[500 500 500 500 500 500 500 500 277.8 277.8 277.8 777.8] +endobj +2606 0 obj +[500 500 167 333 556 278 333 333 0 333 675 0 556 389 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 214 250 333 420 500 500 833 778 333 333 333 500 675 250 333 250 278 500 500 500 500 500 500 500 500 500 500 333 333 675 675 675 500 920 611 611 667 722 611 611 722 722 333 444 667 556 833 667 722 611 722 611 500 556 722 611 833 611 556 556 389 278 389 422 500 333 500 500 444 500 444 278 500 500 278 278 444 278 722 500 500 500 500 389 389 278 500 444 667 444 444] +endobj +2607 0 obj +[500] +endobj +2608 0 obj +[1000 800 666.7 666.7 0 1000 1000 1000 1000 0 833.3 0 0 1000 1000 1000 1000 1000 1000 0 750 0 1000 0 1000 0 0 1000] +endobj +2609 0 obj +[611 611 167 333 611 278 333 333 0 333 584 0 611 500 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 238 278 333 474 556 556 889 722 278 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 333 333 584 584 584 611 975 722 722 722 722 667 611 778 722 278 556 722 611 833 722 778 667 778 722 667 611 722 667 944 667 667 611 333 278 333 584 556 278 556 611 556 611 556 333 611 611 278 278 556 278 889 611 611 611 611 389 556 333 611 556 778 556 556 500 389 280 389 584 0 0 0 278 556 500 1000 556 556 333 1000 667 333 1000 0 0 0 0 0 0 500 500] +endobj +2610 0 obj +[600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 600 0 0 0 600 600 600 600 600 600 600 600 600 600 600 0 0 0 0 0 0 600 600] +endobj +2611 0 obj +[250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444 921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722] +endobj +2612 0 obj +[556 556 167 333 667 278 333 333 0 333 570 0 667 444 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 278 250 333 555 500 500 1000 833 333 333 333 500 570 250 333 250 278 500 500 500 500 500 500 500 500 500 500 333 333 570 570 570 500 930 722 667 722 722 667 611 778 778 389 500 778 667 944 722 778 611 778 722 556 667 722 722 1000 722 722 667 333 278 333 581 500 333 500 556 444 556 444 333 500 556 278 333 556 278 833 556 500 556 556 444 389 333 556 500 722 500 500 444] +endobj +2613 0 obj +[500 500 167 333 556 222 333 333 0 333 584 0 611 500 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 191 278 278 355 556 556 889 667 222 333 333 389 584 278 333 278 278 556 556 556 556 556 556 556 556 556 556 278 278 584 584 584 556 1015 667 667 722 722 667 611 778 722 278 500 667 556 833 722 778 667 778 722 667 611 722 667 944 667 667 611 278 278 278 469 556 222 556 556 500 556 556 278 556 556 222 222 500 222 833 556 556 556 556 333 500 278 556 500 722 500 500 500 334 260 334 584 0 0 0 222 556 333 1000 556 556 333 1000 667 333 1000 0 0 0 0 0 0 333 333 350 556 1000 333 1000 500 333 944 0 0 667 0 333 556 556 556 556 260 556 333 737 370 556 584 333 737 333 400 584 333 333 333 556 537 278 333 333 365 556 834 834 834 611 667 667 667 667 667 667 1000 722 667 667 667 667 278 278 278 278 722 722 778 778 778 778 778 584 778 722 722 722 722 667 667 611 556 556 556 556 556 556 889 500 556 556 556 556] +endobj +2614 0 obj +[556 556 167 333 611 278 333 333 0 333 564 0 611 444 333 278 0 0 0 0 0 0 0 0 0 0 0 0 333 180 250 333 408 500 500 833 778 333 333 333 500 564 250 333 250 278 500 500 500 500 500 500 500 500 500 500 278 278 564 564 564 444 921 722 667 667 722 611 556 722 722 333 389 722 611 889 722 722 556 722 667 556 611 722 722 944 722 722 611 333 278 333 469 500 333 444 500 444 500 444 333 500 500 278 278 500 278 778 500 500 500 500 333 389 278 500 500 722 500 500 444 480 200 480 541 0 0 0 333 500 444 1000 500 500 333 1000 556 333 889 0 0 0 0 0 0 444 444 350 500] +endobj +2615 0 obj << +/Length1 1438 +/Length2 6052 +/Length3 0 +/Length 7022 +/Filter /FlateDecode +>> +stream +xڍwT}?RPIf*p)c m#TRDBR@ABBExz?s?9{v|=q޼kįh!X~H + A aHi Ǻ8Mah e4 T X.z + bR`q)(IDKU p{P aH7 %% +*p(ԅ``nP+ ðH-Ţ=== n$Qu00xq&;1 FH' p( <@@|uPCvpp`HG +@H7 G80 {A_8B\1H|<w~)!xah8 +]/0 +^*^C`1Thނ@z"|{ P& +o# I Ka@I𢀱7 +P1(|0~O?% C@;#wv[ ZA=YfDz׈U2_F%%Ї_X/$ +A"@q?FK{dD8 %.Po$gox,7-A ( ނ_!?_d_=pue!npW?xB?C_~o.X~IxE@"p f:&p#`wŃˆ= rgk2 jCE_줐FCxJ%Q0_ + + X|D.-&tǀ7ցM\(Q Ʒ&V]0 +@B[+=WdHͅ +ɰݪ6 FYS&jmzJ9sv|kkE&/'ܚl$xb&U&EN.omIWuDO.5qʒ,zI/ Mv}+ ~r ZH˸-zHZb +x#K*Ǣ"rt鵟4>v +/yR7nr';&9DXQ3tJiH0v^ig:\\'VmΑS5-{&Ȟ.|JWe +*}φC}q3! 4csjarku{/=imUrBDjf|3 +oBӫqn^V:nB2\ׅԏR@gm1 ʦJ J^ҿA . 97=S)ָiz0h_>@^iq!夨ԝcPXޙ i>4.cr;pqӐ6WGm`i觯ye>:\~lɥourS˵y =3al-6yD+Kk~ya)Aͷݱ ~4#I<Fc7hd0B-ATWbMC|cJ+)!W@C~OP7?8ыED^T)3صE^Ph'C] KT*u7)NNzw*ӆr?4F68.%H7bTdbn`>>i܋!yEϑy+ӎ&wE+]{mݹ+ۅbYq_lT(}wfY7q4yU59wgJ&( +҇u.5 (ӟ!GqGEC 1hȯi-6!G.<8Ǹ&sU]y3ZrT#y`=X  :˩TT4n׉k?|oZ s=6`CygvLzzbBg"!CV +Uf\S^9W2S{B]$t楍a5\GQkGAmB"b^ yހjOG5v.?Uy#;Kʯ6zFd]ǃ!ߜcH툔gAtH +I;k(KKC/ǮWU .$au]/2V# r 47GXmxTa@EU^TzQyۦY[!P'kCת +wʣAD^D4|&ȳhɖO9J"UgD _^ĢI(7F9 +S +F}jTN} +Pg?Yal ɾ͉U"ߕO]Z^6.f+wU)PkCv;0rq 3nɽYzҷHGJZQ-Ջ$˭|5+ ԾM]q`vYJ؀3"Nc1fˏ;JS2+w9PDe=랝>x@xNq+{!~O*+>pXҕtR'̭ç|RaSeidxrSr>OPӈq#1W LR7\gr8\n*KH3k]/>nTd6%07C(7B3G}sXR3iywd+pT_-FV>$ \'Pۊ\zjN3F~e9]ћO'0Gb3JxyE{U&HQ;.Oة't?PSSYOr~-˲[bUdq=~ Eb_)~'t*Fc(B^ےhMpeWU*5Rܬr5{?< s3ZQ8br'O;1 +t6AԜ%`J/R]E9Y]ڇId4ppmYVgԎm-(zqո|FM#{<3:ְ**Pje*yU-V[ Y>#[x{F??($o'8sr"3O>ʣ }CPB:5fAX15(`YfPr))*c%<|]{!f͵ިuT46pVhmtUb P#"BsgML㦴7RGJ{n2pd69)nJu T +1^HW+^$QM>;]̚};X]/g$*=ulӭqVͅ.M'UޠB+48j7G'_3fo_- #N? LO>8n21 tY ÿG0xb~wLWy>[1'f:1]dzHV fjE|' nwL=$rƢ>rEW@,|UeVW3t ١n qx_i'煐w9I;(|+:TԹp}ԄY:Le|r#6dx_H? 6Zz={uF'<1v+h;DM7ȵa-Fƴٓ> endobj +2617 0 obj << +/Length1 1405 +/Length2 6587 +/Length3 0 +/Length 7545 +/Filter /FlateDecode +>> +stream +xڍtT6HCwH H#1tw# 0: .Q$i$ I{soZϝur"!Z8Z$*.T74%E%P4 kA#!`4ΦF p dA@ qqHy +4!W{qm~ +Arr~U=!H 4= .`QB@{DHw%[@?(hAAW/@#'Od^#!@uQ + 5 ? k6@(_U + vqAxzP; + D[@0W B`( }s0PK  BDQP/bব wUGxzBh4H nbn%f z@t5 +C@iqqqY9I wU" e! Bxp !P7Bh$$?<@ + tCWǙ!nqGB8~z;~l4ti _>55?0HDJ("!-",%e5]?*@?17߿h!d`q7ĥ]pYSU_H`O(,}8Y"pw5O)B\>EqP5F(J q5]<[A +c-|8<}PP]vApzgKM $e`$wp +u6PL@R8x!@7k2 7wI }G+$doC E!㷪7DV Z? D6R^*XhyzfYSEV] gfC AO[;ID,Tւ/Mi3=jV!Ov"og^4›=Ma'y8LrS/Y/YtoA"d4pBr'm_FxPq̧ :BΗ͈PnHdV@b5핾͠ܧHVR+Kj  tJf7CVئ侼PxlնUyv|9~V]ӳb]ܡdFA]kSߚ}z)+h@\mv^oҹBʪFha~W2FWxHj:eE ej7oR=[(c( 4HYS(ݾ:^c(\72ˆ$|SX.(ܡ7j 2'j y4lAgh^{}fPxioo>eɸxhX*eI}<"#A5EGś+|4FAGv{/e|% gpb-ԵF\W#;̂)ñBk ΍\_ʗo T8OiC ub>u3--J#0r e]T>yjߴA$$%]2GZZőpi}?9ځr_t^4{V) |]F=կ[ zbUjG˘ ܬK"N&{y;lBӊ`Xq޻z0$s~fM3ɖDbq%&ҡ$Q1mei}L q3cمp|PŬ-gU}@V(1)- sMOB8ahn%D8c5 e>WkFXXԠIi2h2  +?&|h S + + 'Hϭ)dGim8'aX+h,QōIFUg;be{o@BxڊDCNghYL/ix$㆕D^cߓaJ +rcQ۷ߌqDlGGcwgA[kT_"yrUxL^ޚ=,~v3>n,e +bzFn۪rx +嚐 Ln%^^ ?fb@ADi4j@/RU'o,a2HIWL +TU{|SC^W۬WOYO F^0B':簶nwbUu +G_JDmsf U2L6ꀨT_ ]Rn;aY/?Z%mìfyF*-KǙtŽ0UrX 7mo˓ܧJ +{Bx\.G4c], -o#V?ho>d~VJq8Q,T^k^:Ţ1*7o >0z<?wX!H*,\Tl" 5bei~JPcyO;"0rډNQV< Z&MD(&{HRDn\n^r6rD(p 53S-<ˁz6OBʏH3"aKo6ӶU*t=}BZb0qOL@-o8] " +y-&Vem" 3ϻl~vxCB+' c&lk[j>֏h҉WTJwr͛rb[,(k>gWlL>X翋 ;Ÿ1ޭ~|(6bתsx<qɠ"ߞd\`_twi`~~TsP:7SO{B wJzP?*Acd$\ꜱAL.$֡>lr3Q&]yD+G2 >RȃfV8Ʀv (\t|Xe eߑFk_?n2Z H~7u@r,Ej`n{ke'0fi*)gz/FMV#o%`'܎Mtr^>RT!=ypvc=Ɩޟ"mt,RkP8F|.ğ%Zɶ|v_66\ӌG^ɩg@ %Ʒ{~ۡuqĹL 1w&[aQڷiݘt eT7BD-tLq9}f ¬ޭ!֙/ZE5vNڰ}W3AS;؆τP4/UD (ϔS0~JTwx;SxnO:Y\ PJۀ}4Jf}*tX%CIuXus~r+hB*_߼Qg6Pҙn/Z!G1|b' 3PXDZ_ +ÕWbA-l&k}do z"WpCMW!;?-C\mn;%Y-~ɢϻRYQqyGmWF91x`ƃ4c#92, 44.T#g',bcRK`g%+eGtkzŀdx?XmSx| +UK>>$ImhE+0өFղ _Qc7B/6]x#6eJdL+ qY0} WQ#˱?B$3>\.I)[w3D ]kmyr~X]Skw ɥӼksEݗx!Va%ZAFť:$؃'9Pcr-ɯ&^|:v# q: iщsr5talFՋOS27 9h_wQVP;}iocm%s \#hC]V9ˏY Z۵@t=c\.DDYSWx6Vv_WЩ)շُ(rOv0],9E O76E I',IܿW|r2bJ +5^r?R+aߖ$UU Ao]s˝G))Jۂ +2tI9Te74$?NP_5Dt5pq&L7vQ:uEvn!isYʖ) + |_&U7ȅ߬=X@B;E{gQ*;sV ?nN3Ytvm1_\{f@=ܨ8|?"Rna$L!%PBgDʴb9dNN^y}giZ^u13x/޿YXW1w'YaV# +A!R'ЖM\. 6||m s + +z52)sÌz6J&홓I`$پwH=˲yQƶ=v~BL|4)SuyP2T~ҫvK3t*j\RRyid̜e]y6GS.‡ ;F 3jr19cج+%$xq~ĥ 1qQF\ȲvBh>&3UW]NbOC"2vaT1YRB}",օ&}m,#v^]AV +nwZ=]{' Sf-JKfm\* `30?VIv)G|q4pjLe]!,貤x[$5Ӽ5~VޚʷLK)L,$cG \""5"=e?: +KebiKqq]dډvb1DZީ;AF%MȒD? 5=+6g hjɖŪvwɏ?K5s +B^p.^ɱ]hsH}dJ颦s2秉.6bpQUɭGɌS4g-kޯU xƑI<v\ +~f2ԇB?s2%k.Shm6_Q_/#r)7wT2}2w=o]9-'{X_W=jܯ$MYD[9&Z 4+gS\tv&{ogSַFωM2vڋ/F ?Ron D8*O#i{QkDѥ&M\ыiJH`^W~{hMWfXKNOAVi\=acb!Hh,TVK =4fNӉxM_1o7'1\oW=M~>n̡}l *[J{&ТRGXq;[і/Q?\׽dϋ@ + "Tx`NoذSxvи7!}Ic8? S2'$I?}&>5MyP+۬K9x+ph3qz)[q <{?7υVǕ'ث:*fJ^-E]Y-d$ +SM`!Yd3 mл n9S'㐥I.#$iX +endstream +endobj +2618 0 obj << +/Type /FontDescriptor +/FontName /YDHZDN+CMR10 +/Flags 4 +/FontBBox [-40 -250 1009 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 69 +/XHeight 431 +/CharSet (/equal/two) +/FontFile 2617 0 R +>> endobj +2619 0 obj << +/Length1 1428 +/Length2 6463 +/Length3 0 +/Length 7430 +/Filter /FlateDecode +>> +stream +xڍvT6PZ&6Rc` ("H +H)H("HK3PBi %yw=ws_s&xB\ +Ơq P\KIAAK$ h !1hk`PQ ݌0h7"*@`$,#Ԅ ݀F@} c8b@!0"//';c0(hyQĊ07CqJ!(@P,, D +4QGe`<ƒ`_-}࿍_jbaxAC"0- ݑh?ىj88y,2xL$H u,4Eۤ %2` ") #oa5" OF=4''\a+c<X #~A, moV_ +E!Y#nvFp7?꿭z8(q3_"Ow3E`{#pS3e#̋''ҿKja_;')# b`qDI @#€ k2r@XBZ,#  p:cbɿ8<|fB+P|_iHp&CXHO*2;re^KhWuRNCYQsFŷOWԪ<▪'ַI[|ћvUJ'nj.-59.(~*ֳa|#|8q* ݽ!܁3^$Q@}BdHsKIV{v]՗> ;I}i%q S F&]{M~y}j M]/ZL'|S0;@472q.v+UmH/^Yx9l&`Ă3 zg3MčۃSo'Ye="6^̍+yWLP`lOĸ4L'; kpr]K<A4_}R'*Uխ_3<ۜYnbX#1Ei%YHЩ $iZ&\GBW5F<3y$e*"jƒ`w$]o_1jQoujUoS 5Z 5m׹O)G5K[Vd>Jٸ?-up, E|烴Hx7COT@q* Up߶v˸󊩂ց_2_L,¼-ψE%O#Wnvqwh#+$#!xC%q2a{w"TNIw.>]^O{sN9™4ra_Q\c]wSWd) yC,ʧUxAq?𵳶Y=ֳ~ D'γ#B(gʸ\ o'zTZ05c! +'1CR)S-Bldo41G7u&tWfք!}Aw(޵YLΎ9T D?7sfRV[q |ܫ}e Wt*BP٬bG݆"/aDDNTt[ +} +`?!RG% 0:IǓB',v$hMYNt{oEMjd;Muy]+jJ([-LN:ݼcG+3B~tAe/$~uέ"ߩjdT.[9xAbYZ{A(ciE!V@zo)c)yK⬃]*,l4գ]>Z$54fA@v +uNYkV +L"mA)]ki&}p{Hrٔ5Ӻ'_Zc[|%~`Oa$}auo(lƵVS:ϞrU}FbQ^8NP^UZͪ +( o`7P=EDor? E"C$‡]OmpmC?|}FN(1#`p GNb tuo 5!TQjɢKag:8#zDzk,lr[}6g#UR]sv&.]vo}h9baSf֧I<O+r{dm>=gM;nVgo'7Fd4/oQTzvuu;<' N]*Mulb0/Ԃ?>> + =sw{ 4/Y nܻO#򽘳9+8p #A.孂zp>ot rg[|{26Nda6C!&=[$/} +Lorjm ypjACwa2c-^)aL}J̠(^5IV'oc*m=b5G?}%BhtKHۻ北&wp?9dg+Ɇn}a;16YL+$D +y.j~ݰWZ-w;IVNStx7C̲7I2VM\S &onjݫһ<$S_CZP(?MJ~9|a^ZUSӏ|#1L bM*lnSWtP _"6u!#ю0~AB2Iu5m|$\$'qtZYvK/Wjh3&tbݩ׀ 3=M$ێDO$}[}~SPOХ"3>Ӕ﹨yxPͿrwudd +KrHtG.3MO(8v&FaRh^Z\uGV F5fjk9I-w6Xj-.6T$f?alV,9EEe2;%AI̝]]ri0މZBCqe$csJe+&!;B./>qK2[ ,N7r8Qb4Կ+@vfP/kXMU P. +go/6ݎwk?8_F]s4g톱w.ylhr; cDvg'˓3"( +B٥{7_B:դϣOR[eV`]^|}qFѻo.`"}M aPK,Jig@ɥa-X*qTޙ 'ۆGdqw&JJTbT'j3:YmfZAd 8O\0.gAOXS;ߚZvׅ1)+xQCJtIE vbZOzGOꮩD0*~c:CltΜk;j[OgkqaVs,(v1fhPKC>.)~byE|C + H>?9(osCY!&vi.G@;fnK||i}j\w=I%+UWڱ=x=(7IwEW5> >ܒTP;9'O5|uTD)_t"E(L}3$yCGMo?a|.@ҹd(n#}6[RDh ܓ#ϊCZ+&܊yZڴ)?nXlv  hݏO[b{6Ǯ>cB ;Iqœ\sqN8Xp!ba|:eU k5Yu^B tJhs@:g&6ݢu˛ [@N*Ȇr 81h lY0ô㞁KLGdif P}޽KV0qW]Ə[J,llq w#DF v +YdH7ކڦk ۫{ٹˆ!y3åPSmXʰ s?*?Yt}෺>2W zDc3*eWa5~#\{7܇Е%Z!㊮ePwD+qBOcec^?g:x:B_΃sNN[iJWM؁mF#;@՟8xb|v*8@ճh"#3G=OB]Β)zf=oO\/5PW㊜D\LQ)ȼ3ZɜK +_7nrcFEZ^ >|s$6"tr 5Mv=fB0>P#}QeCɾ3fH,,ߋT_ (M81^=4,ٻbSYfd +^4M3T"-O FFQ]HQF9f0(}Y0ђl9&,ښ|m=-_gx%\̥A>6ByVz{'aֶ !-V(7Bڣ-B*(P"[?|Z#"a0*+:E͹ PV% 0G/tB\R9̫udݔryr--49 f>j\"&$:׭Iv"h2/㖵xwYV;Ki5:c5$H2Ἢ"`{ Uw-E]7~6z- +3oJLQ-~{<)s}IaJɮڋ!'g{ jGoi&JC5}^[r[ 8ԥ1p[!R")U pw9ύR#7ϣkI$S/nJns +լ +\ZKgVdw ʖ/ӹ/bk5lH,ʃٞs~+%t!L_*1j +؇ۘW"HhGʖ$kƢócW2zcçRrܳwUY1?bfpxj챛 +X~v5?.8j-@>fLӋ.mh +fm׍mo#3Ґ sz/I*!h?ϐ R~xMdŽMG?0Si琊)>N涟03lP7uksNtlb*NX~Y< ) ISykǩYࠢ+yHXϋh$|#b'O+"Va7N/Gbf/~[`6Hp[wX09e͜槟^hI)>= G&IWl(LJ׵ey)7K|$n|]zϠR w8߻݇>zԱwخ\dTJ|?Tɢ^tU Fl9H3L^.#;4./j`I3?ceqz=p'c|Aȥ[)i|63׺nRDnLSf%Q"He eyLC]T3EטnR[(qMx됒2nlJoiϿMd@h=sX76#hUse]*脈ï]}hsG];_%ULW`{*Q'i Hyްi/84(m>t~MN,aaE|>Gd蝥\Mѯ>otIi++kYo.y^&\_}07gpyhoZҲR` Ks dg9rwnSƯ3MO4oQB5^i\+h~IѺQ* ]zP`&/{9csg~t +FѢЩV|M_pwm{zvJrLftѸ}NNvgX-P.9n8|.oͰ4 +$QK\=/G,>bWۆmIΕ~P\mKIu^`N5w.Vu}̵Ҧ$[,c`3郺3{ۗWZ{S,hHhљ[6fcb7oӭleY>one}w#$jsaK>5itUSfr/jڷanN! +endstream +endobj +2620 0 obj << +/Type /FontDescriptor +/FontName /LGTQCZ+CMR7 +/Flags 4 +/FontBBox [-27 -250 1122 750] +/Ascent 694 +/CapHeight 683 +/Descent -194 +/ItalicAngle 0 +/StemV 79 +/XHeight 431 +/CharSet (/nine/one/six/two) +/FontFile 2619 0 R +>> endobj +2621 0 obj << +/Length1 1403 +/Length2 6029 +/Length3 0 +/Length 6987 +/Filter /FlateDecode +>> +stream +xڍx4ֶ Zhчu{NDc0D{ !: G'JM=5k={_{p +(!mHZ$(i PD&0пD&Pw ;ؔh P<@"H\ +Re'-xD@QDJHWw#S[7Pp `@v`*Bp!}#*%$%vA "dy^0#{B(t.?8F0_C= ` p@aB<vPw:PC +E Ht%!~!+C8ap(@WUKv`8 +{ap-{`>a +sEQ0/B`ڬSB@hѯ)ܡL}3{eCa*dy@5`0&h(PRLLG_|\~HW=4f|P@  B`gǘ1X1>(TL PSQ H H .. +guoz`؟GF =  L&GƆ +:HP\@!,{Gpo?_v} 0z@cfCCM 6^ 43# +@P0o qKK!Q_L_>A1~g]ikE`wwF(U;oH4&G:X(@#1vxc0^u( +!ABÜ^(0x l୬vF'E9g9jgM)ؽ37W11|Qwnrz>Ko]P`qI0&NqDfckb:s.#rPr(9%gMg@)ub?1ge_E?"naakhimn_Qfo؋J:*ytIPXJilt.86? +ےD<to>~QY>b1.Dr99ڑ&]t(ZߋK \֞Bka/4?snLK ||(gv7]auZ/yҌ%qmPO! dpYG& &*bZYd5OB^TA~^[Cyɹq#Y#mLBsp)rRJ/L/= iI>^?@^~KMD[C!a+·6:\a'gZS=~o#IAB]CxtjdwL3_vpm{7\RI +D[-Z'=O,ΤmZ}j9pQᦨ M5.)B;S8$PmxC BѾh.@Sk9BqQ/ 8DU⇧ȇBfbo}]_n[1(hE[)=h(4O~Whru%n-rEK9R=͏D=IG5A߆$9?0aa2VI=*jI> gQyEmzɬgX_$DPRMi? Rpc.G}yahPeYAVY;8Ϫq+ԫwPFOJgu9!}r\?o"epc o*ItBYϋ5:$JCT&ȺEּdTZa륕*7eN4PJ+Wv$#%pMgkV8׳®Ϧ,Tu憜zHd 32Ө-Aч1n/N(h1ܬš[ rWËIlƥr'ur)3a➤2z TY|NաHZf}kG$2E' +(>5ANF\tl_㇓~YYki;3P\J>k5/^[B%Rjn\t[74.91$}/!U,n9c%'pñX`;h4b5y|dI!OKhBpu %Ydm cV}[ 0d+NvaeM z%(CXX2Z'xP;>qVNi)7"5?(?1FzuE .O} ):p@}|j]) ج2Yg[|'?ES2Œu<{K >L4X껞v'2wK=Lտ9,LCOӠ*M<8HqKYV-)ɱqCX?զ }bjjx3rwSWUf@K#[a,!>.ع./jJ> 7!汫brԋ߷j~89n71Ii+ϹADi.F@x$wvmX6XDf'TkFKjYǴOu韝{W Ǭ8ȁ +W{.amXd.ȩ{7[_k@ Oڏ:wA@B礱*w3"!,*d:G>GbMty/#xxH"OKa)5dEI"8tgX$s*8xĒjO&~1~i_<>>*[G,4qr%-B}S;f~seBЗB%*[tS.T3oԝZ̊ {D>7qFY-b +U>$յZ[r灻(Bqb^2aL[@{Ȳ=Hud2'8Iɏ I3[ɻlكh;!حiTެEGaeW%RO?4 ~Z6J]$l~8fM/8r_:6GT_*[k)s|f +/B S(`xηiꆌ9F@Be -tAjk ؑT/tc˃Hd|MZzdH>.Ef쇒*4N2DO,yݬ&9+V0Uwb֧=۫nXV^/Oka,Jzg=a1a_zMgEIKݞ6jўtz_3 zTFaSu$+RS"sE=+  +A\.{YƟ%]Y;Kmp̔%+ydYq,b&Wn^y?HF;;sIQ._XtҎg"u;"rt a#n9hBix:ì{̚Q}zʷ(csR\S6~M}̀o׏<#rSI9HH +^͔m{*BUEK8'f-zB m)t\"(IXŢclsqayY5W/L%4d=K_,Jh!Q"䑲Yw迦O%Tku6b%,b]Z +EJ6O]lGI;<'ҕskr;co$׎^t;(<"h["WH] iEt:Z=K&Ij}7śuР<ɚ{81%]Wv*wO{*j,rk,ו/NYL.i ~D"d>{mJ=s6O(oi<AG6V^8UDo|I!Ҋqǎ7M]3w^r#_= _w_Ub}#rȾc魖bw±\' LN }plHlプ:0B*\WtEo#̫zf9$^[ڕM=dV0Y ?4C!RL2 1Zt+%!.T ߳b, F<˃(v Z1SJ%^O!{ZN?㡏5+#;|ݺsj\b^GbfȻ5u#s,KL{,vƂTf"S"XflIL{iԼ|1 _{s"g,y +ZtͰ3Pس Kc*u!{T#wbzAB/𾏢x9;|y4GX=#[lg\_YeE~h{۟[ML3%פR;s!LnPSO.K~xZU[^l:DxBFIC%2`Hjx^xYv56KߴYշ{?Z!NJs˕ssc {;2Sd՟=WE iƤ ]Z%u)r:Uzj턜7:83-nN|UNѓg\hԗ`;Hr0q/h,ӇZ=w^G9XpG+fvPh5b-hk ~jɗa˂ifAgќyK"'krTUGO(νʨPꥪ޷GKI:$g̬WxҒe` Y%WDS8pHG1R&v#SYSSĘG&5 _+,/w1r^+/_=}b+Ք6_:Q8U9dS'8vd`'=b7eTo F?liG:Vt?V^.}|>V6L+Vi> endobj +2623 0 obj << +/Length1 1364 +/Length2 1123 +/Length3 0 +/Length 1972 +/Filter /FlateDecode +>> +stream +xڍS Tg%>Ԋ p7O`H +%q"pZKꁨBM2h0<e1 +WjW9ri6'AR ZҿOSc57 ӈMR4ULbØXolɐ|x!Pɹ*hpfCfTCf22ԨJo;j,HqI0'Xo3f(֙S,FDZl$osĉA Gd0ac3`SLH3Lq7qc+HHf!`9%߶_/ +NU( ~0?Wh,9JT^12@$+Fۇq-F4&^2W16v>RxJQh:A3)p9I3!@JgI#\Ѡ{#:ߋR)+lW#P 1VW'؟>`Z{ob 3tƀrYV7}S/)0Ew'~io߮v =4HiӽDҜm9i}f-ٳ$di~ܩEs[k# =kvez?SyGDQmefWŷCۦ+ "Eَan?>/ﵰ){Xg"?[HPͭ>#)X1C?Z/xvET 1Q|CW_w?ߕ9ۦX߯[uqZj0Ăs˔Q#;&b}v.-:J +ٿؒ}SaR|qٻ1i}[_z|4 ?xyuWU=-uxaiIzBSoZS$+_#$E^`)33tVy3|ƴźO<8?>wloK=iIuͷl ,M&:;I|LWGX}Wam&|nϚFdXi, \߂>곒5=%_1NĽ7㢁+:zL-?oF ;=: &5;mۚ,;C+n8IkЦ ZC:eY_])&E昔(,ð/ALw^սs)N9;77s:Н= 1s.ۦܔw2EۜK=PV_ q:PkB={56=.7 (}mJSȜ^;3,t&UdoB_ ء͍Jx6~2{lwMU'Ӂܷ͋?Pn^VtƳq +f Umό vv0&tW\]m.vCi|agw'mM7l0ߵ#vdyM?&)buO=: +k:9ݙ2.!Uv?x8a9s/6Nb=x֎ܫ24 Gn$~xt {tI5C[^Z{Hŝ%eu$I~7u +endstream +endobj +2624 0 obj << +/Type /FontDescriptor +/FontName /RWDICZ+LINE10 +/Flags 4 +/FontBBox [-150 -150 1020 1020] +/Ascent 167 +/CapHeight 500 +/Descent 0 +/ItalicAngle 0 +/StemV 40 +/XHeight 0 +/CharSet (/a27/a45/a54) +/FontFile 2623 0 R +>> endobj +2625 0 obj << +/Length1 1606 +/Length2 8226 +/Length3 0 +/Length 9043 +/Filter /FlateDecode +>> +stream +xڭUeTےwtpww \iq@AkpBp .2$w{_3ǷwU9t/յؤ,f 9=S +3s@٤ N @8HȂ.!!! : le 0h1;`N@@@GF-,@FM]_QU(كlPa &% k0[cĒ frb80? X9=C`{sovKBNG#:;Ǭr[sn1j?GG/ 7\f ?~sp [+ dt`GGWQ=g7O?90Ē191([B\-s9iaz$C K U(1%2N#Fߡ!Uuo(@_@;0D=P>AQ +Nvο` d[,[ `{У`Olnk|@g(:rz,MD?vwx$u@-!- uxظ\A. ׿*@ `X2'ןo0͡D x~͝s ψ@n sPs Ĕ$xIFa{+`J~%%/U'Vz[! -4LmX8v=& 9uז54nQ(x.h\>Ҟ;'TD5U!eon^3ttw!GӉI|>m:V#_8bnz=|RľݪC1}%5+R,tVjyjp,V2<8PZ*:eljH lkAVž;}?pAUe>Fc_Ҡ=U]֭pn4SOl'dS(xBRLަM|p'y}ټUd8%g+/sǮj'B:K~B y5ߌ0xPYh9E8]թT U) YPcī>k1G(m^y*2a-{T}!ū3oy]˃k¥<RaSv "!%x;(HwPe_6)WK" LPsu`T\"7DR"iN4gMS&8"mp> G:ptKCU)ǖS ^d$?`xDAOjC̜<}7 88GRLZ!6 w+"{0gS+3]1Vu:FB& 8>OjOLJFLó϶;dDz Ofd&3Bt|,eo7G8n-5Z.H}x4} `KP#̼z=ÝrQL;մ7ٌZO8z>|_Gr @c[NZiMk ƳEs֯)u]Bp!Hl [qyA+/=/޻򌣏t3/5^Sۙ$T8L u2f/zh&h4|VFD\͋P〈ŎpX@'=H>A=5=daX1s{({S21{~'nݦOtfkOvZ(X9+3pnAyIn`dڸWpQI[@F+V7Qm3jZu %ZhSpMOl?©hjn:Fo5\jӲ +)ss4:1Eej@׋9;%XÞ(q%Y{nZBO}`o"*3@fzrpORMҌ,hXx "tC"}wJCpe0yEdcOhIv][WKSZ!u8M2j'6gRe +q)H6 ^/BfHCI'vLb h4Mל(L2g>z@y>@ެZ{׳ٝƷT=o*V ^fDsT=,rJVpWpJE> %q=!fA*M.ʳo ^6Q5[KeM|ݯ!~J3ʱ<#şPWTAV%{4LLjfñd\E?>,? ԽWQїݿzxA2+ڶ+—B @F&9@KmV =~uԫD3x-RVCEH\h6wIʛ>_*.@Їh%ͷ;Z_SU—PVǽSF?O v,hԶ'<UBƖ-Ũurn952{_2| ]6aOk/(# 3=mx3ඕ4# 8m#y(e1a0E˔%u2nw9O;$pI*gx>|$| ؐ; +*oMX7jA c75brz/G3Z|mQYp֡̏ ӳSz6Ж(_CpoΠ#tCGͻdm[P.ljih;<. MD8Hc}&IuGTʗ׿;LF^v}Kx2Jаپ G}9m{aayj%3M, 5!9aDOՖ@Ѡъsu`4sƲSohXٶa3/BXM,EI#G^6MMb֎AڛrVԴAuhÙ5ޔѐIYQKT+ضyݼpUָ_ ㇗\m–Aln:Aj T~X<}7Z۽a|y +_.oB2H 7_FL6^)!s/<[IvSO?E2W f(.ɶ';r¬v,S~vc:E9&.[k'c|; + ,/{^CĄ2Cֱ%Cn~u2Ql_F@'%FaFTQQť2z8&4{>sܥ7ܴ8u!pMV)Ws/]J@^nKaZo5!Ai\] râ1I@W3%<Į<&vU#b~u(lx&3,E݂,/+޽<-N_@xV=c.r8KrDmͱ6EL +^SuH[k -fOx^EFԍ_wM]u]݋G^s|_ԃ-U\x}H/LќneQEAV X= .%+Ù7$PzN&5HҬ<̜*>"N(D: YzRVZyKC_dQ HclqV lH4յ3K:/,DPЩ="ێ Pp WM뒑Fɩ5*4) up"$FDkyy *>u@z_ɼee^*ƶ%ɩv5*WTpozT/Z=.+θDm.m*)ͤio +h"`hҜgHFWI[tn?2.J A>紅)svhnPz,x1T+F0.HyC,&$RsH7f2k+bd쟐L>ja(Tnr N` Χ+OxwkZpOg(V{<#fbheQYHiFc*Woλؐ~ Tv/|ZTt )eq|I6@]%YOj+ AaaIK7 u] UlisUq qDuarV4Nצݳ[Z?34'΋?&G)N>AZM3E||)?+C#mODMΜpUQ:hl2u}=_w3֍Qo(ƺ~v)o؄+}`]uN+8˅։ ΢L^[ao؅o%)WF*x+Ґyh6㫣<*UN IηO}k(V/EH}Ȣ?4jYe?\""6"$@?Ky*f|#^Vpҕo_S-K,D1 ]LAw_]"ɶiLgªFx +βxx/XxrtJ|(:i3J#6ezqs$XL 5w0˺ Wr7WũJz+:wWՕ "}m<.[KSkM`,#t[\T'qQ^ժnC8d&ط[NF|^$Oi6TpG~.lgb*yUMk*2m^G7R_Rx_+I62z&@_Iuy9PiCiV( |}V/T)Ӧ*^F$3akS%㠬}rQe:?kLOω1}.^U2V.eP0ZHYTс"@ g4߼&@eo;zӈumXOD3|`m9t =u,2DmΫgpUu\ԸT"8b Ʊo^1#uLS-}MKtbԾC nJ_n˖]ދ΄_6 hYz_U{,j/&aZ"w ?<ϖMSTm^FtoFgq4Q#2ldz +Xq/bJ?Pf +hǶ JҶŝa _L|֏#D[3֮1eh8|Q*zbgܓPHMaɪґf#CEh3B8(f-pdPRP,K%USeJY0N^/zBc<ٛ4i4)XƖXͳƍRӽ tXEavvùd#lx + yLn*hhDŽwwڣk_7ڋ״/5u;*# ́ +JƊ!*w;/oT|mc}a$beA?4hMY8 +#lxϬTY W]˔ϾqΖw?uFH>Qx*/7Dd"#cAKth%s2ytWBnsp[MP+=E"`=d;di,wpÃ$D#d\;n&[pq;&ceYiZiPU+C,ocMUxh; 9N\?ŗJM]x~cfML Q9|@SF =J5Gt"r1udsâljDz6$w&ȨDxLE܀5]~78n}|v9ӑF/񼛘rp'4-7wJ^+uD%&^֟ zu'D{J^` !`9XlK-HCn+|n]zhI*z,  M6eՓD2 J([@ A|s6)rkwv쟎Et:TwB4bBGK/=RC 8(w[NYWspgYVLXXe:;_7^EyHWrlۄI "Eۼ&M;c E:!RV+Qoa\L儁v1j a^myvɽLطXNa\ltzȚVEI׋\܀BMe9=QUl>D[((n;ghc UN[ YsF&:VŖ<ÏH F|Tyx`?#Q Oe~ZD{L0[yr88%2hH5@8g?b +B>Wë)`*z1$mʔzF+ux(S\4TR롫1AcL B| m]n|G]IM?~-e15Q./u:w)%e,>izW033UD<ך5L 'YgKE`#%_lb9$ ڟK1S@r1!#0|˅,wq12&nxqYL*]S5\ TrN *%l?\s+|"KVܾ3YMwл7={P1T0ZWd̅" ['raCU;`Z{[^F&吖T~X!h<| HzCQ< #NUJJ*L8Ļqo#}Aj6Rk>LK}ℇ[O +g F +endstream +endobj +2626 0 obj << +/Type /FontDescriptor +/FontName /UFZTWD+NimbusMonL-Bold +/Flags 4 +/FontBBox [-43 -278 681 871] +/Ascent 623 +/CapHeight 552 +/Descent -126 +/ItalicAngle 0 +/StemV 101 +/XHeight 439 +/CharSet (/C/F/I/R/W/a/d/e/f/h/i/l/n/o/p/period/r/s/slash/t/u/w) +/FontFile 2625 0 R +>> endobj +2627 0 obj << +/Length1 1612 +/Length2 19333 +/Length3 0 +/Length 20168 +/Filter /FlateDecode +>> +stream +xڬctf]&mbVT;v۶͊Qa۶my>}z?c955{S*2%@L,|K[cgy{;9F ௑R h7@S8`E;x8Y[4* i'`;-T_\6@;_덪@ dYbJe4R +)blci49ifN/&vK`pvXt7:b8l-,NFv=,Ll\L!nf/BN#l);M,@Y%da'_7o?%ddi A2L-l< d/.Ζvɀ47r2:;OwNVǿv+q9m̘X4mniϠؙXYm7uq+_ gfh02AShTfA[j_%]lll/ 玱1rZx6@MIȀ6C ,L,6Z:KZM,A&3#]dci迚 `dea/>5 KkZo+ҿ3+ȉ(*;_QJy8%?K7_0DE^O #;7oBVVCZd[2 + ? +23;^鯪: t ,/؛Ye~a v(mP+*[iV81nۆ;xOCN[N~?Y9T3rNnJEc{LYE h#k&ŃIj},VZ#ؗ'TG{sb)p|OH@Nw &/nʁhULIQ>C "M^P"aV?rA媹l~$ MY𔜴[- Nz Yp-_c#9vz"vɤM\ڣmr~¹Kfݖ9yJXƤ6sh瘫eCޜ~ܺ ֞">&ԺXzZuZgǯĢq\3'9ʣӸ+V;8y.4r}Zuj8՟IJP=oHIڔ&Rs ߩ1X ٤͜o)0QjcJ\XTG$B3A|#9O/>S0#@ҾfI_^sy_ı?s/}+M4T*ݨ)G3TY|U(|j9^I))](랢u=:ef\iME +J +*_PPEeڸY5Tsnӽoay3"[}SBzN_@<$;Fq KW)&kÜ:GY,3c%t @aY|X \ʯ0F[8cyyoH( (@$k`#\ɤ ̊ZS$RF1I1M]13d}7OZӌ/?šSj>qBؐ5ذ$ÁPhUJ ȲD AH<6[7ޤoДm[Ojg?5s%ݯt5پ×X׉X3s v*~J%spZ283Cp0}z" 8*|2|đfPS_7|Mb^s>\eJĥ**gw$25 i3Mm<\pq)_s#f7^QC\Z+Rn*\ #ט'C,MB`niZ&,x3S ]QN){5}ڥ:!~1t0e DUk&Uqm5Mx>ғ5;VEʯ܁]#ڏQ⊬mdKhdH[z*KK2\zJ0&Ɏx !IQ,*ܧެ\sbD@ &~5x*fNO',m l?W݄k.ޚVui |hA~1wEY߇WU;׾ #UuEU[67mѐKQ@%A-'Z3vEhW*Zu9kE| PQ0zvz}ՠ\0Sow41CCgk 쁟m䎺_wJSU w=/xà?\ y :n PG"1fm _dqօ@T "]穻L㽶_5S5U`kbFRbtc bY- RtFUMqy9Җle_Ec-o#W:FP)k#qh3W/}JB6tB\Cn𫻐^+m:-1_Qj'bbjXKm* +`y}n& :IL,UDZ҄pM [e{=T$.F,m9E~,g ^gD-8Z.q+aW1T?#T/.2 +fU:Ov:^ X[9H. XU1+o]Zǵ$n )whaA7cbCmD5_o&6uNlc [h&Q"WQ]N>L|BsBњv#}&oF#AN # +`"c'a/ǗW_o_~lPk"q82rg~Oⷱr& cq⛼7NmX=I΅)%7tE1 wӂev; Iw _Pu6E,7gzmWje=ċմ rB:UH%ۉݿdTW{C-qg4s!d(plCGD XgX:rیS&l=φ=gOȋ4M&Flz|3:0V"&qF(B@<9p)2V_8-;.Hi~G~? Smf(dutH诔u |Gs,jW+Oy-~ HAC]Qf\ayuv̫s0Jx`{zD VۯaK,e3$x[c RQ`@\,-0a57ɟ`+;f^ ]y|u6Z{>"m'"6V +va"XHհh6xjRa'&xbXs, +,9GwUΡ%)PP.b*N#m}S1 +h}<jxƗ-v֫sѮ3<ģŏ-IĈrRY9x{Z8Sk(w>XCQ6+ia;#; 3m@q/5A8!e=3;xԨ1IWi C#BT,!(!l3z\cM)-G7^B@[n{M?0r$ꗖfY"uEx1SÃ6a3^6XhK|I%/̩3.5Yt\#7kLL⩾=w T1[;w=.+kifE +kmhd̕+` +^s3oD-{̪eopU߈ +8l<q{-~y7`GaBp]ch?K[LJ閥mR +ӹ߹IWe~L;_ZR:2C`$8̀XP"jrysII].fI&BUT)%bWj8(4Z^ǚP3yJd PtǴlQt:pcj-:җ?BaGV7Co R׼Gi h.$EZK^HMG`r]0OpB oc@;gVZC X9C|Zw?Ƭyh^Pyp^PƝkBY!&?#`=]`z5o_s +_&;VsNI`P2itG lL变qwi"Bm;bC-xKaAFc +@&ү-J?댩WlB&qUC "o@z/Gù*}H]\t3oQHPf@axL;xL04֋T} l9'yܡo]^)2d\P[lؗZQF8O7lEVf&=oܧTSm^)XcUltV_R JB[E1[D.dct_ P#\ljِƷ"Y)6^0GmRB$iMB6#{/>",κI_]:`oɦ÷-iEw|Op{\SJ~SSUy*si'# [$bĬA4G2N4^5{.3}(hST`tqwI;5%A8oNT ZVs =/L*- e!L34TAQ1c6[ s0z/?ȱ-R]au@L4{)'nmϰPH[*7̈qXsqNvwG҈[`kU +;\|gҤd*%Evšn>Y(N1 Bˡ bzhѣ}-dQ$4mH@![75Ϯlα.9&ΤnVpk@xo>1q%6//ZRdṶ,:mG읍~-R _[ RZUek\o6'KuڭUu9.J:*Y^8x9n{lDW|ڠ{|uovAn#)t/ei\N" +xijD.+GWE^`|CX_R4vDPäJvwxjҾIqےaX(4<=3<]GjV72T;ڞ,nxyI!fE<a6[Vs> @BuJ#j A2)ƕkz+KܽUohY_RE~`*N[fJgjrŧN[ u~ ++1oGqzpW%W6Ue{Gh}gn\\Jޫ| 2Cu)WEc26ܣʊ=C& ;ySZkr>fgrcΈ?-uWa"a+z.cAӤ' +:CVLJ;2Z{)ίmIJ+┬Jc,WLeo%$qNHXQ{j]]L@;3Mx$(:.>rY8]*Lq侢=O bp5=s']5pE)݁VT)t8nڼ^)~{ +o< +;HTG+74㌏eeZmRKt<g\d7PR W3#";Y-\qAO0^!hf& t<"L DsDĞφ,on +U7e1B Y"I)70;1gz3u>Ml0_) )ܼb"܍SԜoccUNd-_ C +E 7T1UDtJQ ZT`5%fٹ$Quȋ6!4,OEc2<M !5Z|ALpql7&V\A? X +>0OI^5N& Hߪn!2^$X~Rr~ 0V'\b!N>=G70^M!eʩ@ABd8F26 f^b;vqʽxj:%0k0]dtxLLK(9)RjtzkI2+qu|g܇mqp9ǘ01 fwzY $S]͘K<\c~8ңfl5N_I* 9W,>USŐ&Ay(piUZ6FkaY |mr)OS͘sN)(t% q',,Ky'apfKp#'R79ګ*D![QeO؎*䄴49uJIGH/>"Fw]f3e\8/걄(% B?mL@ K?xUcmm_i.~FKV{,vM  .\ 7_ |Scn +ywP55u;G|ew[+OO/2T0bH>7vS{G GDa 2aE=P*4t؈?jzv6c[#x:um&򣱾 >'gO#Ɓ IMÎ4ǬCH8y}uT6psb'g kx,ZXVXedfr!6s΃'rWɠ]l07"QUdp%r<E<ֈg@˝%6I֭WghUY8m*{Z[G*vPuBnT@hMDaJT ܆m]SͰKI/4,FHɻ4ZH4m +GuՓq2)ϝ˨=bV1%n fY7x%g٦w="eqYGR M-9S>=YnčKŔƋ~o]Y!˴J:]qvXc +p~jAp6a+UAhpd71~IKo' fUOqORnr-}!}w}}ZB W 6\nu,Jzs d'\"V%_9뎉CsM$+sOC3`>'\p)ЫB9RNd/Z,mᯈ?~*JdJaƊ&5weY>@A^ɴ!82GI^14`$i)#p T.lQWvI!DNl(_;"iKsCY/Np*P~\Ag9n\ܾ!av]V$01ʺ\5SvJ3fh@ 1_A79exxG~'{2鱲"~iaq+xl]|7l?E"V w(I&x\ֺ#6Ɠ6o4/g\Al>sՋgcЋ=ao&SX$G>'7}D$1"}6P=2t)ZaL@B08];D +Kg 5QRQ5Sclk~نWܬFY=!"9Oe3#$$Xp/pdG[ #aHǑ?$kі,q]weYmm!]A֙Н]v[4t<לh`@cDw>CjtCV,:;NllNd6Ϭ/)ǎ.Swa$4څIf짧^eYffk}mx;Aa* E]^Fyʶ#s<#RQI< 9-+4si6WG=̲RQmUlI4}yޭ]PYY DnX[jA/ o|.YLE?tHb0V}Ho/ rGp2%&Z$o!cqIR4Rr>Ws767Qk|2_}H̕, vǠ`zӱBnZ~'7z3})sE*ݒz,5J-s t_L!+_NYZ{xNI ϖ(q s; 6aC.mF$3K(ƅ(x0/= ў܌]-cI&.ai{ptd8R@|L&Ovmֵ/ws ]N~U~ml!Hl*VS/쵗bC;iW>$ LV3CHPy{XP%\rvQ;< tpjea醾'P0в"l?!&(Y$ΘDTx:o3~;҅|;pud>x󫹹T5^nkcvtJu|E,a#f7,x'+0'*Ş +R],cXނ @ x*rq 5. +33(Z* +y6,\ksNpsFT"A[ +I gܩZ ]|B:g+ +#SNЋoŸ9HZ>Zgb;twBQ8έz7 Jt3+dt q#œZkHŁgOjAtz)LYeVS$\K{c)K |f%[)gL(t1&ū>4z(f3fec4xx!Lc1B6KRm 21̔? 3'.2.3 +ǟ_ɘnq/M6ED> znw?̷OT~9C_oP, +|Žlq-;ٿjs%MsYh9 7Rkkர̼35x.z7k(C |ѤL=:GAg&\+c5g9"Lkm}&>^TW~4Ŗ*x^V'ʀD(U\A]_8\<пcR0'=W5vHosUѴO-r4l.u7S~^nZ%w{w!S-V{![=~|TlK)0򍼨ͬ +CD΂>=, ?|XPPhC!^DtYF lRf+W&!qvc>) сI59z/s 7)€*Q(!fEfI~.\ %c XM, 4s#Xؕ͒<Fu-EJd cK dAS c 9d;%eKnT!|/327F`!6 z_fvϪ߉HڊrA$;F*; 5|} T3!5UZR[*m"&&I=PKQcdHR[A%°TsYќuQT{MݣIrx89dZ8p*/%,tuf=/9%/22&Tg_]j%4Xԟn8wF]SdR\E~wZY ]wsy٥˦77&a!w*r O#vDcApnEHdn 63 wPjGFAOQzAl\Òq,'`p4B*VfYwkuSBUtj2zjrDSTl]!$Kz÷=Cޮו!n.s=;=cW5`ޡ]?5C$y5Qco^8i+9KےPԚV݋7R.xɩ蘑µbaΆ5hw%>Uv:':upl*k]4 I;HCц{~?h[B?{Wl#im (R7=YZkbB}.3־y#Ugd0Mz.[Bp#՞ΐjN|7<)#HK Q7̶B240:pF3_,+׎ɃG RÀ&Q +;U-gDɖC \яP އC7D# o챘Mٱ c J9YNB2aVv.j!!:$ȩ̅9%;mY6W~xӵY.yqe!2GSM~9Eۡ>wx{8-8*aH{^sώwBb{ɰWt@mF],qb͉U;هP R +{YC +KV4KoGԪ~8ԋ#Xh8B=N$ ׏"uXG~<H'N/b3-"aϳBs{FId^E/٥(YVN) zUBirz'-旼 ;|V˸/{ip,#HKEy/QgԻoM9*M6K}Dq3ŹYeL!8np1"E>[qxn>~1uUapEql-3DO&܁tCqr P57][ 7ZNeU wmgX8Hi^t/ " ;wJ$/.O F%>3=|!O Q8SkoC^H<ਯy {3JE_-83_d(o"<3TVc峗ha +.UO$wXLİt& Ki[?ܖB4S=RR*A,;XepSPv$t:iS!܁10 ZsTّKkӏ\IrKm%HPs^h2jB˒]5=bjHđHcà! +N]o:Бg|> DH +J5*"9-Wdžx\\~ zJ +tS[\"~+do\cea-sDsE%1-HL q 2>%=S@ImڄeALw)TT+y0ёtȾ9>Z-}Hhl$͘#waya umȽ(ͼ~W֨] w"Ha Al +5~o3R~tr,Eb +b"8Ɠ"\j(>R g:}4U)]8 aJ߃Z5'4:SUS +m9R ebÔݍnF&RF0u=T +ǦͽqHl,`H>+W y1o]!.o[s&z;HjqlO+CPl 7 a5?6ZoZ!=KD>\χ47 І#{"} +?A@vSD- <8i|8aA]zt>r;Ɒ^{=O8|j/]M]X[<ŗ;aJ k7M6+ik>G?S36f ]x| Hg꞊18\0vUx3X@=t,$s#:HK! 3cS`טIy-<Ĝr,\tH~22ݓx[qtdԿ__r{(?I4th߳z2/+fL6N X\ys`8  MKΚD3iL{5ocLAf/V_~?$P2 +ݣ +ߊ.%؍V9@-Fv͏:®lw$ ϑv<]]bw8ۢ59gZ*8rCFZau +y=v(eu]/%y<$ty GvKwsP%igu=fTNdݺa=9@ݮ>ţm0Ϛ{/263 +jS ;G[/~%a .9s,X@u_G/))3,9&/7*8#AwB8=T Q#S2rJGYZFڏݲMYrv*<FSA^ٺY3?YNg.p'NHg48\yHte7ŐKmWX~bv4oi7L #\UTnقYIr})\5zA'{!%z{*"@[We4sH'G=Q`nm(Myu=fca$oQ! i7zϟШ +׈R; upͶ;Mh"vn16whu 9*Z^;ՠS`YhδB[W>ҋkQ;.MIsKUSfYG򚄛SŎz4RNV)͐-TY(]kS &R0gIcj>?7K 3YHW#,3w(  +-0α>|Wdd7QCWO?iu g@?xG986d=S.7&UM,B$iO"~5^ =qȶO 9Yg`KU4(5w3guoҒ:Βi&%E[Zna=Տ><La5 L[Sa@^-'e pGHar#` dcV=7 l%mbp4sc)Ԥ'1<*BI>DOĝfsճ k>?M$` &Ry~I6 N]G88vM^° sP|W5O?}:,NcC-E(tʽz2BCeV-ñ$ S]KN?)&-@E//sQa^6f'֩Q^hsS,0ۺzZ]/+A\AX$09 +AY=$_ϑ|{,C3 +i)t:(46?LAiOPkOOv;)}M r4ymS4f[6 +endstream +endobj +2628 0 obj << +/Type /FontDescriptor +/FontName /NLAAOO+NimbusMonL-Regu +/Flags 4 +/FontBBox [-12 -237 650 811] +/Ascent 625 +/CapHeight 557 +/Descent -147 +/ItalicAngle 0 +/StemV 41 +/XHeight 426 +/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/a/ampersand/asciicircum/asterisk/at/b/backslash/braceleft/braceright/bracketleft/bracketright/c/circumflex/colon/comma/d/dollar/e/eight/equal/exclam/f/five/four/g/greater/h/hyphen/i/j/k/l/less/m/n/nine/numbersign/o/one/p/parenleft/parenright/percent/period/plus/q/quotedbl/quotedblright/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) +/FontFile 2627 0 R +>> endobj +2629 0 obj << +/Length1 1608 +/Length2 13420 +/Length3 0 +/Length 14256 +/Filter /FlateDecode +>> +stream +xڭweX\ݒ5[&www  ܃\?̝~k8svUUj݇LUIl +;01M]5L`;s J t;H]@9@d`g!Q$N֖V.Z-u:Z +z} dv9C7j@+PQՓS(kd@ '@ hmrp,N,f`sJsf~sΎ 3m 3_.F#` t: v0s57!G'{LldxϪ*).V@r;[`Hs_%{y. rΎv@`Npuv'Fdnrv~y;ߪ::ywqvqY0#4symiנ9Xl: whw@s'dĢ vyO ߩ E7qUv_]씁 ~81_,@?O r.69XK\ +`{v-s]˿`b_Mr0W͛EWZBVA_oӿTUwt|'u(k8``y?l>N>!@l\+]=E]<\ 9p:r:9+i/?92CZ^ ۤge IvA8kWoU<ׄ07L?r|ٕƵJR~Xna d1*C8։>S܀fSS7*}8p~GOVMyg=:@%l.Cn"/,ŝ?')d̬wfOHՙaFYӊߜ><:CaƆaΧ&w qʉbΧrS@̻dK}hL`̝x$OP 'UnM?{32n 2s{W .Δ2dѣҴ<}S|lW2ɥxU_?j{919I8 }EhT\@ ̖T% +w]9p⑃=l] l-j3Uۉy$kua~+cS⑼x{ +wʧ#aS03L첄eR326ǴGl}З*~|; + 3Зk. osZ}X܊y&q%)Lrԗ#)z(T : hj71X\4{z|T2=ǀh̛=C-'LerW=IE+!h. ilg@UZi-$Pٜ:mXͤb[s Ŀt:\Tn}Ea0m"w )pl寡q>oRJ9rLjX޵_n$B%^S~2er`.W{骱U9>V^-t"g\0w;sU)78&@trzH/t-s^`yG!)덅F'Ki 5pJWVRp?k7|jRGKη\HWGzWMv(axK(?>?[(w"_BeKgt%gDU๗yg\B-{oNV} tTfI~u+R0GKjڝm*vˈ籬3%Q!5Ft]Hig" 3(m|\߻UW18lZ-ש7>QǞqdQJ ȑG9Wn=zk㦥ק GJ'MHFhhD8ǑQUW]j$A{lwy -s~ī#!N6H{*-8Oq`|`>-u[1rQ$nf2 HЙVapu;AXE~R.@RJ"W9bxULc 'T'W1z69c_uCTWTBSwoXm'{b 7(*Aiu>&'jM]?8 l^M׍ O<VEk(R%ctpNpS7/L!+Ǚ~;vPCR7J1W~H#*_NMڹK(;v|Oϔ0}G 1;\7d Qck:47/S|N#2%vӰ;5,VFtD<^#Ә[Gmdy 寫$8\LDId~ Q8LX2$O4OrguisHQ.zQS=6l.J~G} |QC_oXj+u{\E[w`ޠZʩWr0g(xLM6HGT)#E(BF&J7κԿ^m>qOτ\du[1vF/W\›LE^ޟ7hMX<̕[Ʒ)4>5@KW䛉3$X+e%sj3@0įT] @:%FL!\j9I􉆄y +fPME}\ٳ#9A8  +՚n b$Qv83gՙLWUYGٸ>sCn(,>.K=: +v)vX%d.tk`ۅT̥ݤB*d|MBݚCo!vºÓL 8s]%\乆iM OPSQubidn9]E]y${w6 i#!RumX>0& "!~&;Β|71;zs3RM1kUGOhd>48/C)3l4Z<6 HM.gu4\T>jo&|JKH&m}U)t@?H$'3 cL r;=z%YL'~^bIǁ5ٚ8c}mQ  aM0M&="1ExtrBc֯jYf1‚q}M'zOKt0>H[ )Wl*} 3ՙ1u& @=HpKnֵGχSKIH (Zb$AnkdIjf5 oA ,YMjͩQɃ1"LEȽŁ\bɎp);cmK}HaѲ W8;o!6@aV!w}Բ9QuR +|HT找rӛ E)!k=͉ | J_uc2XlV6}hسSLv1f订ݗ0&+,ھhPM]|3wNAv$-dj[a$*u5CF@nT/ܜzJ&oY kh +K *e48=3@W J_,-pzU@e;0r72>E)7bXa֡rHiۨץFj{R/d +RL`?38 mXe% E( +*up}K*U!9qaqOf/%Ŭ5+!Ae5t]I,VLvaMй|տWf|q6$}K[q2l_HĜP̲0QLɪub.L01w|lt:$|x^U_%_k5n^7u!/nLkjw@|[F<3FcZlBrΘ77&h)>$pE0l[RVΕ`7٬ Bxj +{'&wi3"L1;ղI +ْeLdخibYgvik c;>$۟͊+5Qޒevͼ^GwG&Z >Û^#̀A46<=R%w/P +*k/"# +=f!MDA$nğ^Jk*2(WH+Щy1ҙhڻVIwʣƼc춷D_Œ⒙,,W'dy';됗dׁXMlyL:F }Фݵ Q2Xld(k6rEicU&J Ѭ]!]3W^f;0\(Ro\\@dڶIZEB +9)Մ bsFWBef {r%WM5U= 6 +BlNǧ*sl,|%+՘ +ӭa)$>]0u! ve:u\9 Ù+.+N7c~߹w~f!Vya:8Q< K[.~K)[h?T)?eM) &c`M#>¬k.)˦%oSL& nSʼnf~|/XۻV!_0i4G¬.^G-Iq`SiCPU)O5.)fs+UA=NV SLߝ !:Y, +J-j,y voQ 7Y晎) `,t^\d5l}zTgRAln%u[ttsM=ߩ&OC +{\I Fۊ|5\_k")& +"R=$9cKoIpy 0Cz~[cq\N6IvNa ׵u@ Amlq 9 v1yeVZP7Y."j:{s9\x}6@?1ךËA%p_Vac(*=Zԝ]m.~鼄okd`^Bo ~!ȪF}˙N i]xCCrh4 ~Ms6~}[%A2)w[&N'QѠF܇ xp*ywk a [1V~j9*n_t-a+EA}]Wc'( #aWWJqyl ) |z@aF涣pm~n{.5TJ!WI~@WUwh&leo>'Wtə1o` xt HVE±fFuYXqX‡!慢:3myXj/=(Շ:hW>-j{È`AuOzسI HaX]ߟvAn= x]%aE8jĔkߊU!ץ c0_&Eu.,ON&*+{f㶳>pwr;(R^䆉kN]&țˆT|jǕlFͺw#upeW~d2c hW;h]Hnp5hIN3imhoit㡟gtŪMfOLtII;TyTh DI@ΝSI +=hH,. Z.<ΫoQa\+?y N@3cf +>h14liqx.{O+#2R<6AO(U_z8[PwC]5PQdI;䏰r,0S=K_QrhIpP u&D\jI5H,LoqC~/}i޻PV1  V_l[ DAA)1.3!#SYFi9 Kc s +e!?ñL)Gp@1ܒIŪ;k(/~mB?q Ɲyf.|Tۻ::$I(LiW79$QrC`@U/['vSFI|/]& +j&v/? .Q7X(=O;?lf]$P<4MhhQWn.ϒj85f=4/H*:Nj)i2Ff 4C8.ӛ$R]j19F3[PXu?r^}rc0Ct1VxN-aٟR-1'g˙Zdٸa0]XuQG-Ժ0{d'Y ʻδ40_ؠ˨  1S&$<ۋqg&?^U'& M}A$η\oR 5׿yw`z-["SD.J' m+/ snѿVGfɥ ~(%sG:~Z?dcĐ9'm0amqX|L;je{|7)@b16"ה;h*^(ǵeLSJ٪t:a*1t8ħ٭XeUL4Vݭ +\V ÒEǃY>z٭ܥDGYh4-5rR~ԋCl#5YԷ^"I/H#S9"Vl KC'A!adۘXǔ%z$%vzA`=cae$\1i/[WF+x|r.SDHXqr=U0:P3up#9s},IC&k~p#c77Qb4O\i[ιČ33C"N7lb(4_$}UB3 @IIcsV>FVB.\o+~rse_Qj#5WwV{\cNW*Ddb)HCF_飖O%}w (Z ye>ha>UepQsBnNpm8Ԗ\?fXq7h0>g Rh@/Ar1f5$Y-60Ao *Byj3k&2@'OEF;4 tǞ@}7l/!E2l41s@yJQ>=zV%4@ +h;Ϛ~P)6~ "BsSqB>߃Pڀǹ_K_ŮqQRBn^^k3=xv͵[4I7bȟeʨ4٥\?-CLO8̃}f'G&Tb;BiE+U|0qu(ͬ3"q׎h{պBp,)vk zZR䒑f+2-=S*~@^\+A9Dq&SD/׈KҏvⳐG7xx܈G)ˏ16lMQ]SX4'/;d,h h>wݥ)u0/g@-\Zyxnœkz Vp6چ`х4-wI5;AIڰضSs00$|80F/ FUBNjon_m;͹Q9߬3hr}wrj*EG5 Gw,QzzpIJCN|/M+]}LU9+wcm AM~6z6u0mvUwO[V"Nj W*biHM0p#+IG+l :{whN{3-+1ly Ti^^aRY ͟7q(- v8MTt|Y~pJֱ( va!xWTQYAc.HDBIԴ9QW^a' B%Jy=(]gŜh"n/NEt8%3n*IĪ !-ۈOݒWVA>yR͐3,'YJܮZBqsS̉AVp" Og #-]kZF}N*l5cV3_wYG]Ƭ#B0* DރWMɦq>NzHxwԲ#Irg;~~ys~u@ɡlж56iA,. `1V` dm,I8Ykt^xgyvl]tzgmPǮZz ^?_G*û/I,,q,H1bZl=RyugiUJ~7cGno (1M-!tIU=> +endstream +endobj +2630 0 obj << +/Type /FontDescriptor +/FontName /XFCHKA+NimbusSanL-Bold +/Flags 4 +/FontBBox [-173 -307 1003 949] +/Ascent 722 +/CapHeight 722 +/Descent -217 +/ItalicAngle 0 +/StemV 141 +/XHeight 532 +/CharSet (/A/B/C/D/E/F/G/I/L/M/N/O/P/R/S/T/U/V/W/Z/a/ampersand/asterisk/at/b/bracketleft/bracketright/c/circumflex/colon/comma/d/dollar/e/eight/equal/f/fi/five/fl/four/g/h/hyphen/i/j/k/l/m/n/nine/numbersign/o/one/p/parenleft/parenright/percent/period/plus/q/quotedblright/quoteright/r/s/semicolon/seven/six/slash/t/three/two/u/underscore/v/w/x/y/z/zero) +/FontFile 2629 0 R +>> endobj +2631 0 obj << +/Length1 1166 +/Length2 7018 +/Length3 0 +/Length 7796 +/Filter /FlateDecode +>> +stream +xuwuXT6Hݍ#0!)%"!9 !t#"ݠH7H7}}wyksu] D"-`H W pu#:0kW(dt.v9' 7wyum\N@~^ S1!5_H'1ԆJijC@\0d sZ=tUrHO' MOGoOTTh9í@GJ0iV +Pl\\xxa7Ш*#3N0ˇyNBE5΃sr~&O3&n mc^!yqMi+zL90F+g|Uc\ O'͂ W'(ݥN;>Ys% MX|{^k?jK;进Ǭ $;^cX.fWXath,2{" +/}HĿr2(l}׺f! +UI5~y0&Y4]'(7;ޞIoU1ΘSmk'ޑK3Dx'' `ôhqSΩllo68>p<-TXh@E3fZm|ϸBOM[{6iIs +ꥌP1YXLz:n!Y/GLDpbzT%; +<$*_ŷ4i©n&U~?udVQƏ +݉|sv(G.~*6q`~'4LI.Grʾ![Z$mzjFMi:vENYЬI_Bx$58IZI5w䜕,UOX>ܷW#3I۩}z@ !:CZ/I6Rbᗁ\] ! kϏWR0T2.;6UCG:ln󁨬ݯ%v_b: >0E-ojug. v_`A +j-0^8D2V{*}sBDxxV>ନfFC9V%or սj=z썯9YrI>+#s֪e]Ԯ*ByM߱PS k0LAX4{7LXMh)^݈F3gu1N,rCV 웜d2+3mk#J8l//XV3 b Pdl`8Wi@Vb{Q ?Iu)4y(񥬍=NYm22Xԛms[5ٮ! Uo.!K |yJ𱜜$1Z-2Zc&)SeЭNz4}rdP |9fR(~벲+*{ΡacmT Sޟɦ-B爉Di}jJ A?}mtK\+VZ/Da*'Aߋͼr%/p4Z_e-Zݮ ;BpdF>w$%Nw,UD=evWd~Vv2T5= cq(ydٌT46tv&ˢږs{#@PY2XI Qw47|dգK6e ˃hVjWQKENt"%O{Iq`=~ޟ4EOt͐Z[- ]TDZ>-ot +˵؀~=X6G +OvŦ 6T'~:K\rPͭNf`R~ b( ZlD8s +I)nq3ƽI-L`\pg'bcшIyGb۳w%3_U4L<* LLܚлU[k ^r! +nYlT˶={J]) `ŨcIm)]G/#=Z"!3'*3ݦ4_y +E|C[X{ GGFI෋N$N3w.}sOk 8J^ܨ4 3W,v @ N˱Iz:6EFEAMmq0R#Ni޼%44H/_ xs,.&:aD5[yYCǛPmq0|C$EjaAC4Fk:JY%8F,[`;|7մ_h^aQ[ ;^ +K=Ouguw, +_:C\>f[?'Z$-/!*FZU#k|63/²Z3a* e2MAsꏷ.{3K +Wc)ygŇRx2})ylA&i@]nt3ygC[$iQb Fm)#@sq|AHe,hnk^^$[0ƠrGZĖ#:gs8\O9OE.X-+E%IwDqdSR蜧Q5GѻC\]Y{Cm#]2KCJ˴yn!_0mjit`W@(FsC݄T +(զ9 &R6pYcSCcHpY[AO1x$\o&2BL*J&oAK)3gL0l%&6h.\Kez@'6& ihY?ZGFla9ܙrm Tڴ|T2mzEe@I]7b=N>chMwZ )tbU`mv,p cP$j +SJ9-AeTݯP)@}5kxSVՇM,2.7c敻}ZW+'~ TDPh87O{i{vs5Ԋ ou~|!Gݼ}TϜ:^5W{(Dɒ^iDUT:MQ'OVJ{VrA "!^/ U:k=9qWffcnP%QcgLo['N}Vj#wQ)nԩ1eܒ!(Zm'β-Mnlz) L00 R^7⠔;c~jY /Jg0Ns/ +go}) CQ;3ۻ3ro 9́d {| X[GS"^Ѡ q)b`@)oEs9I{"QŷF]EOw%Bij{T|ѬkL { $}*݈;s;mC&|CgSW./f4tp+:G8 Gcmn~hXfEj|d$%Wox@cpe꼋;Wj䲴B ^n9OEֱ||ڟ:wCUw$e6Jh+F4c|qu2!aj'KX-vneWS ԝRE0_,fhYMAaQ*c5gwqNUܝ8!;L xBx'aBa039ll~+A3 = KgXMC2"]R@{yƐycHpGQ/ x%lu1H/c02oZW+C="87jvE,ȴ +#?eGUXA{;l3QͅY])sٙ" +*׃aU)(h>y2إ_@HBt/ ;SF$x@ +~Ao|B]nO| `[9( RŴu,SLW.SJ|Pȼd9S7%۞eO^~N5Zyi*8sl[Jԩ6ڤvƔv :^;ʕS_&r +}n[Aײj#t%y8nL-XaYkcll/{*r8_s[ ;kOqMLT+xGx4B=t_[ ϗQT"Ur2q܎DҦ](tvƕ!wl/鄿n^8i]+| I{:RQ:{`Km/#imS +endstream +endobj +2632 0 obj << +/Type /FontDescriptor +/FontName /MJPQHC+NimbusSanL-Regu +/Flags 4 +/FontBBox [-174 -285 1001 953] +/Ascent 712 +/CapHeight 712 +/Descent -213 +/ItalicAngle 0 +/StemV 85 +/XHeight 523 +/CharSet (/A/B/C/D/F/G/I/M/O/R/S/U/V/a/b/c/d/e/edieresis/f/fi/g/h/hyphen/i/j/k/l/m/n/o/p/period/q/quoteright/r/s/semicolon/slash/t/u/v/w/x/y/z) +/FontFile 2631 0 R +>> endobj +2633 0 obj << +/Length1 1626 +/Length2 15464 +/Length3 0 +/Length 16311 +/Filter /FlateDecode +>> +stream +xڭcx%vض]m>mbF%b۪vN{w>}~u1ǜcEA b`` P3qsQqSpcY9((ĜƮVƮ@^& 4Xxxx(b^VjuM::0.Vʿ?@[G;_DU j [bJ +jIu$ll Pr32Y]4sgS{3Zsa%08M=M@g;++:Mm!n/B#)9:[9VUoƮv84s0u[ٻ\2̬\m l/n.Vŀ 0v6tOֽ׿8XmXX4u[]7w0n?}@ K `4cRpp[@2 "?qS V}dblgeњu5Oߑ[F+oV@3%+WSKyˮnot_#003O8ڛ'R<,qW%pUr"`:x|X8 l,_B<~b'@o,|u {SF/?nS7g@'nu/:=+õ;oxB\|8̱I0֡' =r.yǁ ퟑ^,[TeM_!&eݟ`&2Č3mNf?*PSl0WO4d䏎Hi( hEg?G@Rc$z97~Bs99Ȭ1&gʛld1 h1.>ɧhLj=+5H:A.4%dT@'>ŶBD>p1s0CʰU׷QE~@ Q.ɞ0-ʑ2]`ϡ.h'uw+sr4lVUsC+ܱ3I+ϳM}5b;< J/1fT+fDŽ{䑴}+vx {jm #VֽE5r. (Bɬ7d1`ka8-:@퇁l+ OK&V.e>LFZ7yvE%u` 7.!(W2fEgCN>6_aj@7 jZSXts*>VRl 3_R^!| b4 S^B ]r\N;`{&W߶A?u[|͹$wċNn-i ?{FӪ2K[n6/YT)Mk|CI֌LP<t_~||`m%2Mk1YLq^ >A{(7Y%P:hh#KfaϲW$)%p_^tg5p: 'EVY;se41;BԬ!^~ CiH +4w 1|kO@:''[R)_#p^M5&^&^,;L71;}ϙUb].5`P7UEզcrգO*KWLxzmcbD:6YSǝ$ݎVziݩR9@΁zB1EվJaVl47_I jAd )70`ޙȩ [TiF9ҟcEG9 OJYno({Jq*9!_7E(BRm$L:4l-ciAw+)#D:\RE^%t1Dl|P"XSiivgvAY>Z3lv1If 3gH(Od,% FL{rLƟB4`Z%b۳MҦ/q]*>cX>6Yb}vD g~^M֍gb$Mգsm%}XbSƪaB~nAMbb-a8䅤$9s#dQRM::s@Wjlj-lۇ@!C|A>7Б:j'O̭00{"Eٰz~(V3n7n>ǍV1vw:6 0`l!m(::e"u؅F77nYE6)tW +SqJs %6kiN{z֕).N*>7q@N5V7D: FU($\9@YxF]+5þ,s 10cy\(AY~Kc#({˯6kBƬ-ۥ/–cL0*{n<6~vmݽAdƍ bYgH;'䜊2U3f|)>[<.rCzkL3}벂84rK]cpѵQ`;Xq8M&ۋ69j83a? #' +,5V۽w_f_jU;ܘ>pi|u|,{04sCpR&(* +ġrY'IOIFfQE + WAZ^Fx_%FQ7}ٳ<$uv.3 *c|P?qխP +l;Kݲ5P]䐥߄/v:|flIkj`GDfPX_9`i(ű ǖ*EǬ⧤ެ 7$j'ged&Lij/8d;5s:d Fޟ:.9E]XvOB`HOҷq|S#$VE"h +*Tclv.pѤ mH`Qa#Utg_--gQU= `}&)WrVz-2+'xlŘ>g`ƩsusPbn>T;bkU[yK# CPL?I%ٮg.~b]ȉQXT9ɕ )ͫF(ur NdAhd~Xk v$!ݨZ}IpZ=Tfo{mIT`;?~i2(:;qM#s)qJ`3/RK!ddG`Ի^ ",e܉WAG~-+]h1Cz"\mBЄUC$d.o>up-'P}{F\p4yp;k2XAo^}BWaE}o!RJ?%#ہ/ךTѽ*OWc>sԉ8i@"Y 5T|R5Eu#aY&,l~8Im$:*òydSWCz 5Urx^ݑrAJBݶvJz@-x޳ʀC>Ȅ6=U0U\JWE۞遦1TNKbվ W+ӥװSIa3q+CVcj띯Id!"Gp@s2 c,RW(.+7N'e{' &'/]^v΅$Bi%B1ߵ-Ryoj5iDX<'UGi^b{ӄ ),9G P};Caj[)2g|w*iEwXvۇP +UW4ըm2j]AEqBUq+g -g{Yc:*"B8 $S")@QxSOk.J +Bo_=#0g7 #O\ Rfxw4BY#.Zz/c]%Q[`>J|,g7_dgn/;s5yȨwJn9jnA">+b1*ъx[&}>}Xܯ^޹k +V(`֓8$Ba1é=hr.6w!ˬ"n%C.YHK0ē,w3*|+a- /yGEQ&gIaY Rfeսj@%R`E7>MEHd= +䳇i㐁XPb >ߌ}%DK?ӊ֋@&~ <"Eb-VB`_RaDrjcӚdozVi!>SGA `CR0HYr| -2ɻTAqӂ`}c՟-06{3\eH?3]t4N7xe=x 5eވy"1 \'*J9a4 %?80)ps1Y9&ꦏ2v 1'ծB`-ajt2^GD]\:+mJzE*89/N7h\HT,riQ7Z+p(lOMd G!34'grT9FԞWa[WDLw-"4ˠozlQcY9Pe>\AADP$v,J,ssu6mG34g2ơ@tM[ﴝ*癓 ?'(Hon.ㅘI0iDgi#A7E*(zpIc+.ٜ桫zzS , ])wq0+TferYY|(Qt@n26bt +o\j3)v?]RO}r7N"6񧨳͊,zU91)T[I_5[߿zM~px,~P#Y*:Σ/CS#x=%`N|wAH-=i* +UsehT O,Nb}N6n0+JBJ8&ZqOl) ]IU %β%(f|z=e@_tV+f}\%dZ:^k Ӕi 4i {8D|1wa >4h"M+6Q?Ns*)7MCOGu( Kw' t@;Y]3eD}S@dKnKŅ_fl ޖ9M8mJ:A +!=  #ǒ}bϮS:F(Vu[QVlY?$<9<&n.MmhGu[kbwƸ$W(V[ށ-+v HR3EZ&"zw蛉Ư!E|z s8$_]xigO<ذKo WuT\:+ LL\D͹mY7K4IOWF>3٩q2 0#KQdg*1Bo?xoeɸJx**\,>Ow]!y#1cˎ{a—vBtkt/GISp,hfÝGd0:]GG5awo=ocwq8+ ^唐q6(e=/}r{*٨ҫ'SP@#cq7pCVx5#o^6x3k.L_ +ت8MKNYgA s9'E;}%WTzT ~R 'XV0!ۜO,lq3 >Id }8|X^oknw{ǍCLz̒5{UNtRH*RikQ??8?*})sVZBƧ -uEpN^29;mdA{t%3LAt1 wߠx :y!B֌ܟQ/~`QeaiWV +7j1=\pp`4֞SF>9&Evj k^yf"]Ca%s\;%aߨŗM+m;& U$mhU5Œ +,QTscMܵdз4k^?6Me]q~z;)  +1VDdt&.#ήz,G㽲R2U W +reePAoPӡ0O5OTKZ;Lӱ@]Q;aE?L7 H*`j&6;.z O֩xJ"s%_m=A߮7`Մ+~d(6\-\u:ȽZ`T ץі^꘲WZdV$Ĩ|EW9^}T l\6K.2v-\&IU0NHV84*W`k +ޟ.R$pj!GnXg!i D68_֊DkId1G]?+R>,}.,SBĔa|4VZzʴbRbaPVGm~^( OuwVypMC(ߘÎCiC,:0%$؎"4ږ$Nvޑܼp$HrQ6=#Q +&6K1=_h)cV/ݴ+ML~+, 4ya=hivyF~jI -uSoC*$*wXi[;};,QRR>A]ʬGKѝnTά%^Ag A&Jn>5߸LE Q|bߖgjqu FpI, 2Y$s'B~,u6(oh% +xʦnMȖ-N$ ?[wJI1ΟU tݳe.]ˠ;7n2+g' ^2xcvwQ6WD4(sc_i9D5N^=⻰40'2 7f6U,bU\hM8N"NR._7*%a@H ✁|\n;q)i`xO t"{kbW[>әP"a+`U' CSAs|h32y7VDu;qk~^;,Ύ.eЀ;tJzXyp/!*4) EJv יV QR׺0 V7c Awoz"g"5?kPtwmz`Em}l)ϖ\X>`%d"~*V>l[IFanBpO9ܬ^L6j%UvLjD kt6ێ i#ZesaZ +8Dq Tߦ[LM^$-֞ch O<FYʟ`'E-UBpA& 5OhaQ`LC޻_@;cVܯQXv2RgN_͆LMe!x)p*/e=]tJ Ij; + X[!Ty:ǹe/&AMC :qY ^AFYV8l2Sk9G0 H+ # 0.](j?c?& +o]iM?-C(G;H +7*Pޛ5tw.-K&r!͌0 "x LDЖ{ʫNpD9c'W4avi3)?uf6 +'5[W@$b8"ϳЭnC8-O[[mAUe`ha?XCqXqivTAѱqq.R#5b+L;Ɏr_%yUɽӂ8xk)D$/f8gY-Gl[F?d=z5*H$JkJי)r*$4h&@ ߶12 ̇s -V5:HPE肋NZb xkLŨdjl +Gkb+ZC2]`GO]XMlEiV^ϥ%P/A51q=`\WØ~#-14J"Rp11S-YEN%/?Eht T3,~ΙKbE\;yQs\ŢcACS H+GF݄XBAS찦u +_D`EG$ mYϿV~xiU3*L p["uZ^A9d|X\=h,hzh +,чzHk;*qf~1}X]}=Ǥ7 Orҗ#DʽY:.BH޴x,6q ءN޲y!Wϔ/J![!0{"VQ#6q!Pj`J(ThD64*:?>^8p6:U17&ӃQIsiܲr֋s .-""y#kBwb=Ee:1Ĵkώ\VYY4T#mE[Q (?إy"< "4>̳LYmŃpr(~j#[RqJ=@ÄqK1+π/][ yfY/fu0hR+CMcE!O9˼ng'1,J\BB5=8dyI]WJ-JR#K8Y1!0(] @fw!C%cJ[M(Hh>iʮ6&ۅ)c= +XVMYOi Uw2|2<;p1j3>b[5Xg-D/9a4qQI$s-5 +(̿I pho9Pټ#.'%5IndᄾdjqӸ>J$*mdeUCaxat ѓr[PV K?šaE+"plu6U)vۅ4i/~}+eٓդ%ul$Z ^y\rRʜ4r0NjtsF$X?9rm&t'=ogz.۝PӰF?+ s#nB$ wpp +}䝚D4r7gHv1i.Awp" vnzxBO/ܖwL&ێ7z$mzӆF":O]鼣U{j<\Jڰ;-Ovᖣ }u_nC2N'dLJLeoP[>EB捈$65j4ʄݴMq"1 + 0`n-%c8%Δ2z CWFv=4h^nb d jkv%t4wwUjt vSi{ aRdAU!-L\+%UȶZ"f3Ygo9ϟPgQ-=!x+j9cZT$ug 02OJ2@o}IMi!k2|sR{"c6^HyQnA*+; ToP~W)[ +γ |RnIEN?6Ƥ,1ԅlJ g P`2KY~/Gڭ42vw\e0]KmhNtuf-d+ MWQLuZ4\$$Q@=8,'10~63t˒I{nvMzQn[N+Κ/k|Vu +~hn6s|ݘؐѭ̚NM.l۫Ԧ)AHfnOF2yHrR1n߿sm lr̶jI0YܞE̱u uA`&+\7l$W_J-,aFHʢǟrELGXrngNF}aBx{%1߽`w`,fX.USpH'5R{\Q TNHA:Н0?3tpGӁ2HQώ#Wa (ہy}.QDČPqVS  Elc|dhP%'kERQpBݥFmn^0-Z6f(A L#6@yfGŲp(CZ"3 Q?UohF^R5z:Ivn4=BsbPO'߲*|s_ !~wb~$д{" 0t>GZ*XIGq1 ( 1V[wV=LQ<ˆٚ SVvX{ +c4\2/JNc`+i}$'G,qR3P$%(A\_/,Xw_4»dynYҼˏ}N){$1sp92_[Y젚(2\9^AbD|Qu/\Z^]IQ?/1e3= f#ǾT9V'{E973&"qS꧕)YQ"jC)+=:Pb?HhD#KuJG)zz{䝧8I @>|Me7:Iio9֣VG=iA +t5H(kc4+ 1 +5J2ժzF2V^}BkP& FoZ|2$>Z_(3U-€a&fbm[ibD Bg_ ވ8=I +endstream +endobj +2634 0 obj << +/Type /FontDescriptor +/FontName /MUZCCK+NimbusRomNo9L-Medi +/Flags 4 +/FontBBox [-168 -341 1000 960] +/Ascent 690 +/CapHeight 690 +/Descent -209 +/ItalicAngle 0 +/StemV 140 +/XHeight 461 +/CharSet (/A/B/C/D/E/F/G/H/I/L/M/N/O/P/R/S/T/U/V/W/a/at/b/c/colon/comma/d/e/eight/f/fi/five/four/g/h/hyphen/i/j/k/l/m/n/nine/o/one/p/period/q/r/s/seven/six/t/three/two/u/v/w/x/y/z/zero) +/FontFile 2633 0 R +>> endobj +2635 0 obj << +/Length1 1630 +/Length2 19461 +/Length3 0 +/Length 20311 +/Filter /FlateDecode +>> +stream +xڬcp}&vvmccG۶m۶mӱm3g3_f·]_[UDQ^(akD6rvT喥W9((DN6bN@: 4(vfNjUeu:o`f6ʿ.@+[;k_@ dZX +jIyU$`hPt60Zm4S[տ?92vÀn@Lv@k Gǿ G8,lM)_9k hh`aUQLu::`ke dhap90p2t/ſpv1 +f&V@Gǿ0 _7rWg N@+S8f96cgWmLmL֛8Q3404rMmP߱G-FyBK8[YZ]#ch{g/_Ձ.&dw,6fab`Q hhdl05;UmLV6kzf&banamژ%Ee7_釻G7r&SFD IgbI/ ,fbW15guT mLnTc6vvpK߮Cn@c+ƼAiNuع#Sb}#v? +jl{}v+ kfx>ݗ>aYQ h P7);9Jգ&!!M'?l1{|x`)MX"ӖU #!ӚcQk]e)XJmZ7DIR{'jw . +4ɔ¸7hJ\ +%k -75}ӎ<٩IK%<]aQL EDZC>hduF۩m!n k+>- T麑nIIaⒹ[IM 9_cטn1g^ds̸P=Ǵ@Rwr\?d&mQ2^tՒ&dþR Ųb(!enj(O.nv̏  1{"jRtV Pe=%!(0<5˧W+6VG}7 ,(au3~K:X "Cݥ|qjH|qyݜS`{Cл%vQŌ4:\ X6ܶ&[f[bu2EgӗNj}jZ&hUL1=a$8`3:1^>\ 5X [勒H%tq;?iqqɠ/u'ň1 yI[OBs\8!7o}(7]4ɘ}%7~vm " *4y}@hKA 5(hݰ_7[n y by,3MD_zShAc$Y,ʤk:|*$D.NI: 4\wX*m[^v`i5Ƙ}L*G-tQr mW VC 5,.Xܚ iz=؏Q+ǹo'{*0!WxҽQtZQ9%ܡ%jt>`-p |^e.23Rz(%TXqpʷj(pM57#216S~wd^tIBri4kWaǤ1IefcΑHq[v25; U_h +<]!ۣ,&4\hъ3aCa\5ڬyXgոp(@.r4L˝DmlpØBՄWk[Ww[-t cj1EbL3|<82;L!UAknO%0XNGWŐNl;%>঳z8MdnQYQVV'= !Ea$:HeJfDBI_CnSXʂl9T +,%,vtӧ>~ȨQy%Kn D1j5ɽEصZCTl6DZuB4Y3X}=^+>}%{Qb*(5CC{%5c$>3 +TjO?IՋrp=QC-*iPۢڼ{A~?΀tފu5 !Fz m'#U3JEHA-^k᫼@a–8Kc95풿Y<#{ݳt%VU!aA3ڀ:vhH5L-ܼ2dwwV-yXs;+e>퐵CEz\L F5$#jE7@Q,CٳC&l0.7s%aIf$pM0:LqxuzJ^{p5K3#/VzdONچ0@t|df ii1zI?ZrQ pUwzPjq2Le-5xZȾK<j6+׼ DVŽ<*!yTd۩bbgXCLCY' 7=-=X޻{-[,bsTXS`9 lm A9рXćD2w;yY̐raeuf%n&d/E%WvrCk Fdr+Qc&QXAo˯%$_CaWyQ>Xpi|_ѓՇ(72)s<}2"yw/Q?u5Ռ_da׉0v>MzF[KG}s\^G4%5iXns+Ӯsu%W=5Hщ ZZOq*\,<m޹6s/^صOk4>/yHL>]omαI1IfTA2%m3B7=cp恼X}"7&:7od%Pǣ< |nhtFjzdC.%COG &2<) Qt'%YLZuu\@t +Ůаҟ݃o1r0攪9*R6Z8N~ö[hYHգ\F064g-^2DTqh}%u' qv>yɛz bD0Lm[y\ISR>]P~`m\BKhvUC=Lb C J_cKnm@gя<|Tّ 2JHH5al Njܶ:,v_gmdBcs(^;xV~q3|8VH^NRi7 ?I٬'us*mL1!6>}Ch$ITTJ"G{Rk a;d\+c + RW2DwV~]%kb&k\;]n[ +2kɢ?؜cߡd[Nh@zd9Aa^rTV7FgevuY}17yI̫|%*\ ?J7S wwƒOzi4d,W},_Sڶc4:3y3Ļi`ZfG Y;d§[zaVjDkeY龪;R;HAahq ̑"d&5d,,Ȟ\F-/#AH:4SN`%TwUÿO\~iT媙bgU>^Xzd3;9*:PK<$0 kSK2|I@_XVJ>©L'Jsg9! +EMˣOa*]ʸ[d!5C3E&ntى)uws(ĭYކ?,znG[26 m=RixPV7")?&s3SdR`OXw":# 6E֯S1-R:hcuWrdA*+n$TΊҽT%4W Zp]:C!~ٯ7riգ3lR\RuhR>r%`OܙFᮂ d(Hm<"qmͦc1tM dIJYn=ZDlH#  oeOH 6 dK?17dCN(t['J]ߓpU*$7r:@h Wtq&NQݏ⼉$\}<Ǧ[(%Ԏ\TfKn#HC A_FessgؖeyUuQ]B䇳\#R;!6k5¦S,s%4`"MsKQV<fM5w59,3*ڥc*8 FԞRi5%2v`|y׎b\ jPTunRv4Eܶ9Yy,S5db'FPsoLPf>؛cFC!?ǾZ +7VaN _׮4 +jbFD\U:8$0D\,wۧozvSy7Sp^U{.ЏQF´ʾqnVFSA%dK@ "@B-}+$Kd/<Ɋ1-{@Ƶx l1Fy ANnZAȤ0d|Ⱦک-izݱvvmC gGSBgz.yRtD =،`!yl֤9~O@Ŷ;ZRYq>G +UPNg+L$֝vK`yӤ&uOs1ƢVZC۴ٴ(-jS ?6iNZxs76tL*PeR/ЈXE_pKx)|_ci2DNWMW9FeEʒлv;MV̑pW/hɓV_!Ck6nN-P3->$;G))o!Q*EnLsl5M F[D*zG"Xepȶu:uh$z nOkṎ)|Jan:3&ebME?ulD0fV#b7Jj+ߘSc\$i +Z`?XRi/?ۏT%9LIϗ2W\mdRI&5pd8^nKJ +cPMlz:wiҧjF#l?:>;sD?2RR+fǯB4Vo6P ]o< gW@KWN߆) vP<$nHLizQ(@vkƣj}n 0ՊG` *2xd!YRp д`7#@$]cY~S0KB| vR-42_(9=^7p㌁hsUD ΀#2xCӴmO|u"M8zX}R9OT9m?xIP}gަ%ڗ$?w;]"dKt%d$oh⠔^. >!H<^]uCXnkpP~m00&'&ݤ{QǏ(QJ\t}&HinN)!Ъj{̺z7&ppO}]0TxXk{B\@-jZI hȏ(7M՟}E>A=\ϲB5Ѩ-L0n~jC9i65ўc`0v4 }'9ގS_ (1< Fm p@ F2pP&kz\r L|b A 7Vl/nAkݣr!,dYǓΞJ[X6NPµ/ȡ~YYPM>g-<ٙr͠{!"MGUͮvMh?E+,TٸmpCZx<ݸ$)8Q㗺e^Nz&n1>ʼ0c_Zw:*nLbw`QXbۈ +:}P^I! + E:2Ut`Fdm6) +*1L!ʘB<:Q4:{<&1XZmKx& AH3ܭrPR\0hJ"Og#71O +~Q{}Po3s:/Lv+ΗČP֓`I2AlR#T}ӚFYAC쩜AnOz$!eocvnbԦ:~jvz .!՝[8tOhH!V@Ո;>񉨌5Qт1VJ#x;J.ڃ>U(eCYVى7 .=2=7k?x|iv 8є yc)cԃ9ydP'8Nt2:1ޅvrOOl Qo(,&kQ@2`6O<7#O<)=WP}d0>qIp" B CgH:ᘔ]sK O.+q&dr\ .2HݎȵXPno]҆Fh{5ETUvcFN˘N1"Co{c'JFHd*G,#9("+1_~pMrxKa6}* ( 3 bzUwJPӛ.n#t,+|Kvنg_skjO *R|(V焂;/F-D kf6o}QtBY޻ +B$YCb '.f_؅=/2$ɻZXƪ|Bd[z aY؃_);vȍ6v])P.Q`E-?O6m3RF߼ķ~r7 l)١*وuU\)9Y pl#ġ +1xj92~#V 0m)ކm*ZO"$ӻ(Mv疓u)@g\p g:'EZ>ڌqǣy~ޱ@x>[1(\JC&<5uE弍pU6& F,x޿ڢ|~o +7[N L3#S;"j#4v޲e_Jk;qgP.4 +bo|(cm\os"HC?]Z(AlNƽprpʼ`Ř)N"I׾+—チQ0㳀l]ђ# +A;6 dLB)Ni[<߿cmUN3^z,Ԅ +Җ]+0 ,LV ޶}H‚W֩TP: +ӱՄjkn ’ p^} +-2]Ggޒ㳣Qi:(E,2i#f"?+ тa+ȦL9ʆYFyܥud0kL7=jzfANX$Cgt c +V2@8'1=H!M6-@Fr9_Xr?*YD T}kmNrCUA&`,x |^ޛTFפ7_^ۨlk6LV[RGoGgт'D~SXv?$Ѝ- + =FAu<EkExMRڮ?P=%P+bfSԚv%~DѸ*/;5("Aƚ9 oA~粵U OMC3:҄w+2 gPh@ I(r[ǟH\WSn7.lGZ}G&sfT7>( 3Cwkc0D ~vUd~;?Cc)2\ݔGD Xo@)8c'>XBT5N~tnf+˭V3ޖ|Oof:8󪪜b|LkOrlx! ͱmLpKDv-AOIc |eDO.tR*-DC7R7qxMTlїW(ooJ$0{N?n; b$ng؝GOm&募/? 'D_ygdk +݊b!WwJ`> hG^۔BV'5IfqtJjϓqŲ??*2 iT;<^޶Yu[H6)"^@ij +Z)/5~Jz]5x^RE2܅g)$Jt_aE}k/YJN4D0'kgݐپmU%HOL |>t2=Hs8u3Kp)mhihO|2O株aѬ'GjZ\^bgՃ3S "sC;H 1(*I2_1P~ -.wz=(qT/IwYk{xEbg9(lyz0Шzw$b݂=eC c|3ͨ*.d%?ЇJU.7F5ەºh,;^gScRBpU,rnöYIȧ]C@]eƬhxj8.2 *$NR==؈g!s4v7 c$/eǛL#|F!$/匴 +qqs+huTm'GM3^1 i;߫=HNWVpRTvsNЌ _ݘtɦC> +G\= B6dPUi!?آe#v("L&3-Q~hAIg`&0? Ee:3Zi&fAU?#ATbu(fuPNJ_)90*-'"IP qeK_Sp$ra>8Ч +*BcD`pGs[}ryh4K:Ӓas3ݖH7_xT[OUv}H,_WWP73').M0Yd+$kI55FuqXQw~ &eQ ׅ⑖EslMgt`xG7FrPQ`3cf +K4 cnyT2A~dS[p8;nuFwj3835=^_a͠Oc*>څMT +e8 Q?J\.Dbht qMV ¤z6ϝ*'̡ƭD^3\_K] k{bٞZU/Cw1*4L#L{da7=gȣC-N>3__! Mca4![]&hh Q;Y᧰YSW)6qO_MХ.XnS_dt}Lvu|D1qn/6֠)5]_,_<JtgØiK . nz2LT>Jw uKҫ1\rE"(Z->\9 #D2SZtSh/`4???Q &a-U:/Ч jq9% *fg+Klmds=6o)UȮLa Ω6KUN+.4&~]{2LJMũEC-/Ix2"> KчmcnUYpsĦCTBl+󪮳 ^GUdB2%۲Ƶ.h5AV+,q]1 6< à?V˒7)Q@gR Eq b[^Z%j׌jIQԿ$˲zhޞpO(wZ k@<(4I Pq#yaXsiuFzBRb{&'Xsi|Bw.׭驏1/#:cB-o:4~_08#?qLƪ`N; 7m7 & ;UV@A`H az>:V,1b]?aQVWzT +hȶ#j r2C1WB}+rTj޹o">YK貨//I9^\5-}SQΓ&r H,{ZhƫUU."Oڵa]·5y5k'~`YA:Naƀ0AJ[Λ4C"̇|Y*G5儩~~_iQa +v&4GF2dy`7#SWen+p@_C7{2Twԡ9'Uy:K8͙:y`im/behtXvY Z9d7ğޕF7ȟqi5>]m1Sd/5U~?Pf Gڝ9-Um'ŧ#Ϭ֕!JW6fXs\5F@{-IRΥܥKiȠ@a i8šiI%SgTDLwX : rQԩ+$8U2pӊ̭5>WxҰit}é b\ +'N^3^ߦ6LzE~t)2bmB-\T&7lCq4%ˠ7X?߉,ƒj\9vvƛ/lfV[zXHwKi"sL+k[U{0VVY?ݯXۮ L5z,.R/ٱk(5rN]qVJ"ot\ey}K;oC75d_fŬ$yo벾GL69w,g0@R(Er''6.p H]cLϪGKGRq,?1~M]auaYLn= ܑ!5yR1rxGW5d/sz5K!9y|" 7%x >$03"Bl9y&mZ2;y0-ki.]~TՋI~t n$ٰvgc/ќbnK R8U~* 66r3 +X-;/ +g=N\S?m5]æ4vOsD;? +0s&΁zMBn 25hr6ݻ6Γ, k,iӖΘHVjC[[|Ku(BP ]2h\ՄX>Ujvaij|I[R;8mk?425o]R_Y 爇mc2Xh~-1,su!Q);*3^ jҮ)Yqȃ<5NK!GaY]_;3}kl&=ֳ"WBm׽y"}n>KB܂yG+ֻL$];m>ې _[YRQd4.%oP>:OBm2$fІcn7FPy2vG޺MZ>NxєɰJKO6YLZpj UK c7*(OٶhϨ3b۬!N bi ] GY=sь +g G|w]=3|;oI0tMI2Jnz1@r9+`^tTK0:ޝ{fR +r(C7e'x! qgF4Dtk~r&{2ÊO@DHf\~}hn-vyÜuHZ +ZuXtN^ PtpmlCC6 i/-}XsHEe`ygjhm}Г |, |-!u/Ъ:s&fɩ)~b ڳ|\MzTURhw~҉'PAa@CRU>E@ k0ҍP;[gssQVa & Q "b:_Ȟ¸KC 5T$u W%_{f~V9s]LVw{5Y,V{SAAbOtWtEd $mf;Du T](W+w'g替\MP,"#KQEK'&\5hz"x-u%tdGRIDbwMR,$8T剭iA +}a$-T &ƫfB {-u~ Hok}n axi0\q?t&k1ղygȽn{;<Vͻs Vk*Q krplsnP0H̊7(aui)u!i;&i bm,\aDRɷŐ8CED}IYu?4^3&H )sX =(tMBG oyz>$yꢊ9kX/"JIDjgNnbDqTWUEY@h.V4DyDHkͽ4b&6urh+~ߓu-Kk[IU|a;q^;@#䳁WtIo]yR4cSkƽi-ime;GgCE,^42A1:-VG/j2|vT>lT2'd)Fzg?Wx^{H.S= 4iKɞ¿W8]j;KL~) A#{U0T=!oWIE"85[B.M&s:n p@sȻR2\ԎEFznjk[`x݊сVO]{E#Tܱҷq[z"켠1 x oVA5Ul>=9Jg걍taѽ8$ύP<J4E>8,wCfB! j5ᩈNjd ti,S ܎8M;ڔ 8l ı~4I-com32LI"=iz؝> endobj +2637 0 obj << +/Length1 1644 +/Length2 11433 +/Length3 0 +/Length 12272 +/Filter /FlateDecode +>> +stream +xڭwUX\&Np nwN7H[pwݝ5H!s<{fnfU꫷䭪BME`up Tn.*J, +7Fd +vH @dp V֮zm ]&&0͛ +}{p98ڃ oφ ہRj +*rz9mr6ہ-J` tppSsa}Òp\A73r=.+g3[ \`oorKrtvxa{Sspqup;޼I+NWk3׿]ojMߔѽi]+/svq3z ' 70"`8̜v 77<Kfv^X;s?c,Y98|ZC/9?t  +Dgނ0:@@%2Kˬ}$7PB ;GC˺٩ٿ5v mɘAo{h̜73{oL,7jXXȂ=A@55nȵ!@zX8Me %_*YQOl4TT%ˢil&|2Q{k W-/GUv/'6o pr_ge3Wg'#;+;;_S07o#iAoj 7g7Yo)׆6N y-8+2.I| +6i;ٌKOu/Lk<#Nup9|`r/O}kZۉ6`5|>1SNo W/S O|.UY-5XI/SnpsYc_2qY(L>&5h\׹p»vV/*f" F9lZK*zҡiaLW׉#E?ZeG8ƸՇH7TV@]ː%#0M(i=F9wخ0Lf#dŤM*g.VRu-6y'C:6;nL#d[ێXԐAhMv7){{jn+e;ht>|f꩖RU +eKWcxֹ`޻{9+P㒀R4 ÔƸ8/}āC5Lsv`y*kp,yտ/!\.&O0NMܺh z&|h5<1QαR-qanyJJ|Fo!?+^ d@HA緅4bu|)Cy@Ïl vsl@w8E9,n&ԫagJR_;~V<(R9mZOZ_ >M1T|/qL*h{;l"f uX8Wʀ!a!$Zcjfګ$ź̷FXyix?8?dQ1 P%1I~i8@=\|:ԯ8'I'I,k=1-y󸛙][k*|i)2oWԚٵ_wVq5?d@tx!Y=#s7Dr$wԃ+lƻg2=d3,bGM0xnr3c֖kF+3"< +> 4u㠏/{&PQfk:-hV |^Ow3BU)>_uBvva| [ʝg)Dp0+dޣ?hq]Kq1af'țK?]H5DA;^i%:!C8^,F[B|f*f8tQ>9X{!"?~H3MsLqDc'j& +ZZ5G>a,aQwh+姒2ue}Y#-ՉjcQD'*e4rCHbcB vj9TOlEłTX/s-~fpGXzQ-RM? t H;0Q[hH6}9 !I|*.oEA _?%cw"{EVj.RD9S6-酜8|@jx^3knߵ239Pj f:cCX84EbdG+zZf榆f?; , H[9eua?&w Ҙx2䍏n͊4yDmS~pǸ!O(gR\Je&"9zmCZRZU+Ұ֌M (J3Y(.OE&k޹ޕ]d +e"}d2΢k w!O*k94Uߓ#:r1F 9PW +11ݳe-V)EPqSYdzZP֘ƅEӳduhjVꥑn~r=_C aօd|CXW>4iomsn.}EZt,=qpD>WnE|ɹfqFxn DBNMtD[g +)59pEҹ uFuf7/Pv7kF[? l1iˢ A՝K՟ lfs}uGSCSSZ$H :!j $aCƗ$;I㓒ձ#({-;xfF1?Y*F+X.JEd~=~IFqyi%)Sv4; +J%W;tz"A"+_ɢc"SخA[&<WS; ʐAsQ`XzUsHݬc)¬؃p\SNxqoaMO|໅YHgu#i$ak50+^\>S-ph3cYhJS'ЌQƻ:E}>|?#>'7߶cZI[nnѹvuT v6-|,)5r(,OGU6CƧ{y,|A008Oa>VƧIzp)vh(+=a Yz̾ ~K~#o5f`-F +daF1b +$&#z ڽD0\PeJإxÈmUv6qq-^gǹw@Eth>-:Ν?f8 +2+'q#NA ݈AdM@V26Yt ]C4v 01hL==8ިrAدIyyσs8 }'|[u7^RB47I abIv B0YoB|sdFx/r]%[ʭ}n\m쾗k6K|չL|Q"6g?wk?SR~˲dRV"b,Yeh*-'+:JMu~AS_f?6F֡ZF ˝1@Hf}[/̞Dbx;((Wnn6Aƴtl ӱ +a|ʶ#lz6\JB|sͷ4[DžZK[;Ӿvmy8yTg_s)MJY)ߵc(,^2u)mUL1U^!PeK|hpY׶?sd\rE<d>)6Zzu'4{E<wN~Å<ub4<*3IQSc؂.Nʴ%6ZԹi|hǙ.cL_vLAۅ< fO$!պr$ ˫;Ǣ ]bƲʂ>%VeF^A>A^$d!f+8o6:D:Pfxe6H޽_cP]P`gD&74qU~8a  +?JoR4ɚ"ߦǑgK`2D(a9.5ݹ WnvPiR[_W+YyǯSՠ޾j!jU#iԍ:R3&ZLg)/ H]=K7Qʏp ㏸nS!E/F1? qu7awu_SaFTg7)p{QUE聚! W΅ H ók׀6LNF {UixҀyөGZBJ10¿/+ Cs{c27q@/'Ӄ^uߴG#aTZ wz5~j=1FBˉ>BS^ގ8nz=p F'K$_lsD#mg6W ۬` GNI +C3'"9-e0ԫ߈+-ǥYQP2NOgDpRA M|"UH"pIA0kzhnԄ>^6I$çD] +;$?ub7Om0^Ɇ0_ҭ 22ZL#:?Vɭ}ǥ^)l; و 2V 4h`bÞlߐK ~Bc ^}SJS/+ K/tWV SQ?Q;rw>9+ =x?S r+I+2D 6*֤Ln+՚9lMT軍$P鍎T7 7ֲ6(QΨ_vQx>ݤN^T֦';]{2=;G/g]@[WwPԅֽsDk^7YDƒ1P~U޵t$5n/-k@*-nj!aP+%̱O0iD- +} iW }_\tV|Ͳ5J?%e]Y+!6)k}5%5}N2F^+^5Ƌ !oԩ^D! v`Osʬf0bc\)@}<ܟ'ShH_k|0‚{$-՝Cryպ;yb3voSs}[/ۗR4gnz?K+W3'+7اSiR)R`0uN.EYd>}GWE\QcOځ,cK, ~"[߰JAU6]hm7{CUwjgQ[8r4~ԂvhzE kiɥrIo9׏ ǂŽxV;ǎBKェlB5jVG!(N9pEfu! +X)[j~X~B圣2:[r/ר6ͮAb˴ֻ7u3*Z6 0Fe?y]q"ҧGWiה}:Lj&8d-i}6bn(Pv40qDt$"}Za@JnymbL.0С4RWA ԣ? wjc\029sw|&nNK%o7Dq+qzV,RL֬xE5#q)K1MӎD Rg$$sa7ͽwhv(1;#¨&J M$ʝXr/9 X4T=7:;e¢˻Mu¬C(>+ȋYCc_Zs@G-O[Ö +JD ~=^NA3G%߲S}R|LVl:#``#Hih2fգx"pppiV6L;?)znݠ`1{NYN e +Kզ5J{M {ՁBJ)kn&'OBh'm~H oy ڳ&H{ /ӑFLF讔F=:ُÓrWܱZ~VFZ9./R uc(>Ҟ+0( k|Z.b4J p[umB3Yh~D5q!k}˺W;>ZlFZ +;QIaF@GOC g0ToJ!,Xd'3&uA*GV}*\q; 2]coZ5xL5bl$R`bZ|jGqߧckdZLߖ3\["yHVms=(A!V)L'1L; R+>\eQ#*a+ڏlji2}zo{LX + N\LnV)p讃5x+ %%4bݯRKt +Lp)'s;KV!xvZC6 X6WX\ֆՒPL+m_ff 2JZd̻A`]8@hӒBDR #wt +{9Пco^[2Ko m[>~8-z.x8I17qiWPi5$XD'_\c{`RTP~Ĥ9T@`!z2?Wt+.ɋqTDdxGa1~ .Y-W:sc5#;?Tiن! =,(*Ca-dHaC,Y:1:ſ՘9>0S2/U\ENyO#F +rZą_|xE$Qˏ]JxT- `b;Dm gw$I*QC +mmЦFOj d +V_\tjl@ˀ.;yth]w f,%߳^+gf8#2>k#nh?VD>#PUh̀ i)|7aFTQga1h֭kezb'r4cgWK:9r}A:FPޑm4աnY^OOgNP-b^*LH߷EB>UTo:giu'x~8 ^Af [JHC,T +;05&x bKY?LUrkʼnaGr^ (C׽ XFm]~(/♐w'=)٩mwopQQUs"W,.7Jz\D6a !2Wo>z c`ێ&MB@C#ɯB\LVHv[C>Dۻ%$ZT29^3ZU5i8ߘ\ iIg Bܡ,/WP,"Z3yps5Q~,?8u_n`Y5>19bViWj/+sB#,Yg0ac`i:=:ᤁu`.E EQW;]/HFE5\n8z_'́DYzGqv^1F/.s4ZF`ԱȵPRqYn0 h +b 2\HL1ę8DlBև6z3m?sjgXGLFJ 6y‚Pq+o k+g2 <=@'hkRMSuD\N-Z帊gy/_1 ~S["`+>;4l(,CFWTԳ~uh#ԣgV[OO= Q7d!Fim)V3w~UqwrIo/[Eu^[$JR@X25^:Q-I@AᴎT+Y5ʤPfaN<~2:{W +v,EM݆t7لDWUQ:po VZb(cLB8F$(|؈c' .:򩆾Ѷy +As6Y5)0W.YSE2BC/Სo<1+\OBFօ[xlWRk{<-??طdRȹŪGb? f7CT:%g}';-8|7 ES m;՞՟DUiv%qfT\qF VvzK#8jy[5,^Cc'usQ}]wd/Vo:B{ ;'lj[$/OmOb9Q-;z xK;^ qCzGyL;3(Qm)Cxg$@_ddr,ı/T(>?=MK=ِ> |@e{J(o-Ӗȧcڔ8]ϊlXKN;Pe?ܲdXeޞ3fIoj\{?eSyVdN&&sPj^yu'EpŹI:ߋUԝǟg a.UHYA籺FT݇ (C}jaSY߇xېH Zۋ.[sjt.QP#SKHGn3k":*T5|ي#ZUۑlim(CRAKL84NŶ'\D dZUp5D2T4 LG^gvs +! + f&1AY!?b5aw KK5qDꬄhWlZ3pLLd_T Jyz{eARmE1peFQ2%r)`ǏDeNp%c_Nz;p\^f "KjRc ݀epWUSț +++Ou;DS8j 1_s10p\t:tP[> +endstream +endobj +2638 0 obj << +/Type /FontDescriptor +/FontName /KRNMXO+NimbusRomNo9L-Regu-Slant_167 +/Flags 4 +/FontBBox [-168 -281 1000 924] +/Ascent 678 +/CapHeight 651 +/Descent -216 +/ItalicAngle -9 +/StemV 85 +/XHeight 450 +/CharSet (/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/R/S/T/U/V/X/Y/comma/eight/five/four/hyphen/nine/one/period/seven/six/three/two/zero) +/FontFile 2637 0 R +>> endobj +2639 0 obj << +/Length1 1647 +/Length2 9461 +/Length3 0 +/Length 10308 +/Filter /FlateDecode +>> +stream +xڭuUTܒ5<{7NpkhwwCoYe>t>vU]Ꝋ:)HPۘ:;()0,eL2 l 8 sd`g!S$lVNZM5m:ZLF:-!. k[;@ 5 AVI@+ A@M8Z +`3DuX}BZsd~s@f09؀_K83kg?-l*{%Sutr4s9^OnG+ x45s_++d8@Nr`G;kܯdvpvC,Y#di`n rt|ys;ߺ7v+/`Ffci Af3/ [vsg`. .нabn v,Yl^Shw*3D7Ho"M={Wj)gkk%{^ k +?gPڠON!|Uo3Q + +2W;Y,L_//&` ^E~_XYӰ}Qo1^u%eU ma:Nnv fV5*qq[W71>G>vNOڿyV4qrXYYd/43[?sd12͜^kv_r!/ښ |T=0b+(I Y+3~ dnv9{ږ³LxQuaP0iGxL+fSU3,z'hp@ox L8"*,_j,‡KyEe"kxd'p:s dA{45TM/:$V Jsg ҋ>$^ю<(@˜zHV}T(M.zd?h6-ǯ BT(%1WL& +UE6jAi`'Os 8],I)MV苠޲=)F&,JXVv5& Y$2x܆bP!zSP 3R4a6.DK9f)_B,7Ϩ|D0Ӵ#}'Xt@eyn5Ts"rgh94 ;6uUDc;#nr۾񗰐"UZM\{pG<[9Zb!i]oKƒAO4F4 ~䭈yUԀ:M0>J<(Gsr{B03Q4RauzO -Vhyez_oڹ$EaAw%v<܂`LN8,;ڦ٥s Uxc|cM.~=NL%:0d%[6WkVz_tDjW:*}ԢfF( 7g(=[ TRAʦ[<2u$:9dYE +jw#6S!ɐەQ#Ũ>e)f d I= fEc7ƕ9"ɬ֋ xx=?\7r?(pzACyK>a@9o°oA$ {|At=];QR"tͪw*vΐáԖMPs"3I~>mu­ʲU}X{D +q'ج[al|', 1z]&;+Z',b|fpu0.'n']RdWCŤ/lwf" +| Зsk4E;U7m|{CwRslxtp;x*b;"~-K1A,=w,i8i[!\ǎ>"^Q{]bꧥ=J •Vy!uRծ6++y}}-={1%hxQ#2IfpdLxEd9_3ASrNi`ƹ@5 Β\MtRDi +&oGBqmwP GaœT?; \)ݭXCT}wd p4 e +.}:1T%Q/ThѺ,bc竷6IwY2up +(g!ͪ&﯆1z`o_=0JJ Jg\S b1Y޸ɲ'wC~R/DL*"#t6cpi(e[EE '3Eݽ G:HtTnoP+38"Di%)7G7 +7XJw+'b +ԩ]th-~&:"=Sޕғ+ŒX 4yñ9e5als`CѭZ ɛ[{:YX!twnWe*=8=+Nd~KTwJ˩X1.?8&d*L~>!n 4Dkg7c;쳽ޛ]aM-y8Zӵ.]SiteR!g}#c}E zy`-c' QEAf1_밐zLfaæDC\m\xoU5TR!1Ɖy/Goe d1)|ukdMlk+"ƑA?8)GE9ZQ[DzP[Sfk?\\ siM܃Ȗ^;OœdJ_b?Iy98*M1 ɟV(1dF.'zj<ܦӽ5V ݛS%A]r> Fkɭ(v5s>]%>hM!HւscRyɂ '&a;rTIn{Ymt +Fl6'[;BPMz+T-te$®d%oի'H3A.di4 %Re~Wh'ެq-~i¹pj*-wϋIبAF'3~Dv 7^vʠFOɀ%< ᲌M| tK!W8kUҽO )|nu¼ߜKƪ<)p-AZ޴) 5sYQ:OJwd<χ}=ẚ>Ӟ!P_Prbx`l +UiO|"C\f'& @9|CQ(uPЏgaÖ8 +_s$q + |vNJ(;eޡG'w J&ωR}Rjtb,x6roޕ䈤Mܝ|U-fS 2pHo{=J%T5Զh3;s{Ǫ(]Ɂ k}a-bO>㫕v{ՌK~nw1 M1$Vrc$ $CFT<4X 7Q#rb_ #9{+Z9JxxFQ]]n{~h#R f!]N,n}spoaՠ>(.KdYU6Rm6S,GőCqf;O$7*{3bq C14{e♷hJ%M_-4#Թy&(0DHXC|NQǺAz]A_抶;Хov8-x;}w{~c=Zxm5b_#Y<:vDAxkZ=V.Z5=.GuLt( *:x8cbmYJ}GV 7<ɋG5D7Au`9r@e:J.&ۖo5G֨>O_f >gD bfH4LY+>`Br韅$tjZ6a89SYN쁸v5&ϭ8G2Wp\~T淞/5]b/|U.p2N T:a 2TxmNOv'HV#cD`f*5}~LoYM5fR)̩g[<&mE(G*Cc Jn wRP oɼ\Z_y(5^Hwn:-<ͩ߅ʛΒtGeFl&[#BXKbz"4,?6V>KaUV__ 0#}焓 ϝi5<WؐMQcM +ЍB}1 %f6Lްoȑ}IBOGCGk2!qݧhE|Ak()7obkm2J"l,3BX@>Qf0ba`j n~7uѦG)R|e)Ⲑf1Vȍ\ QџHے"a,#B$9F:w|jQ/\njK?3}ƴa$K噓Y-xgf9ZL]8L Ry8+k虓֥ Y+Ɍ0~kIe$$KXPjT-R)ͯ.;pG)81n,%6=8W?%0G|qeA^sFxm}270dj}/'(Hl{DA-вٞ=le1agm](A[7$^UƋAri#\i (I}ץ[P:ԣ#Մb| 4$Jx/%Oщj|At׼G8a6з#=5RcnaDqMKoD{=>P컄u#gG%&٠v{ 'J!4 c)Kt{Ԛ*|7[ѡ7ѭuթ)w6͊ZwEǍ -<*U3gus)3GGSVM#.*%iږv5s[sSxۋ?+AN"u +rch:wfTxX@^=xطdž]6\~Y+?A8Zk̦s$&74oZ&欆t;۲`ˑjțWohslP檜5-mլYI%.I5K?"6H_$|nd}F)mY1ݞ04cBιB"4j],8`v-uߚ+,?ր+aOq0]+RՓ݈{9;r]3<%[N2yZ!`JLeU8<}R- + +XM6wmܞt{&w\P; cA_olBQ (z5%yt9mCL"/x?=G~5vůXgupDVMyHk8ޛ"*D.j0erܫ2אmBd%g"Vch֑8`OۘZb ~ /ofc *u݉J?tW'\_֡qfO͌eS`K=j+:G|rnB\M0i^leK*HY^It|q (WPfl&ww#.^G%n]AesXuh ܷ/嚻At|rGΒcQheBev7dCr=IFtM%=dK_ʣ {7qҲQPZ ê\k%g|"FŇf{c\1&@ӄ1Q ==?G߅7l. +XoFJ;^*b&$[]4єnM0 nZn@v'|\欺SऎVrx~4q܇& 0ϰׅa +p%xڪu-;m޸rPZ +E~/+~S恕,6;0: xA&tlhHql6%I,3=R[+c-]yY,8]5r1C~x9siL'^հJf!QLQCb$GlZ.j,_4oUŨ6zP XԧmZ.`}L.` q'K{=E,*avРK7H,n6„O^f"ˤ*1RJ_"*{$&~졩|s25U[(,&(?秔r[ҽo4d@ rIU>U#W '$+"]8B*7ni}lS˖Z;j_`(T;ּ +OWJ.<7PçnR-ژ9_cFj,RHt~y8˻]Q59XMP7BȜGbͤeS8{!G;l,UxL*#c5OxHsbmk(+)d$`3> ;9emn.,HIlBCs+3y7o#1-k*]zdBln%0Tn#K1dUȠ*n4cƮg7C#J5ĕ9gMMe8_}M?]oVA|҈Um{f=j IXxLERkwyP6vTG8ʿ.--qǮv?~g` ruLיA89*H$\&^'\(?8S&p{C8w=V8p,xlYƻ7Z'TdZ(:lO[boauE;.y-%8 uw%2H"RVkT4omP#w| 1,\~ƨRk>/B`Qԛͬ]/*$pA\!mZm=`S J/.׈Ϛ^&+o(I-X<{ g$I(om1$-3Hٮם$SU3W̳tDlczq~3qIS0N" Bk_@5Cfx@RTt$;;ݐ +J,vd'CRieN0ܱ^v#5'Xȡƃ3nM9/fA̭$ŽƧ- k= Q 呟{4ԒVo=͔j.vSb8R J+($9::O 0%tBJ?uN_RFdݪʅnWvyLՎd{e9Ϩ)m bG4]}>X5Aha$ :V\;4h̎A55V\?.V [Q ˜%3.A-ژ:[HX@(OoVQ@ q: +r!ffC'6 )֍Ð2CkleUj,ho>ֺ6ia˛}ZowƠBjFY]iO=EV1ͱ/CBo'/Λ;4uF5Dj^{j&(d'ֶeGa^<b'.W۟uPb-EnUn$N5H2dzpٺ]e;F[˦*0HG~FEWA\Yϼ^'l*# +!螇OE|Gԋ+rz<>.@ŞN:xXz&Q]VY/XvS $H\>`|bڧ2Sblaf @!tw|DkjE#NF+3lhΨ3> endobj +2602 0 obj << +/Type /Encoding +/Differences [2/fi/fl 33/exclam/quotedbl/numbersign/dollar/percent/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/asciicircum/underscore 97/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y/z/braceleft 125/braceright 136/circumflex 147/quotedblleft/quotedblright 150/endash 235/edieresis] +>> endobj +1870 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /SYFPBV+CMMI10 +/FontDescriptor 2616 0 R +/FirstChar 60 +/LastChar 62 +/Widths 2601 0 R +>> endobj +1356 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /YDHZDN+CMR10 +/FontDescriptor 2618 0 R +/FirstChar 50 +/LastChar 61 +/Widths 2605 0 R +>> endobj +1357 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /LGTQCZ+CMR7 +/FontDescriptor 2620 0 R +/FirstChar 49 +/LastChar 57 +/Widths 2604 0 R +>> endobj +1207 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /GFAWRG+CMSY10 +/FontDescriptor 2622 0 R +/FirstChar 15 +/LastChar 15 +/Widths 2607 0 R +>> endobj +1201 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /RWDICZ+LINE10 +/FontDescriptor 2624 0 R +/FirstChar 27 +/LastChar 54 +/Widths 2608 0 R +>> endobj +1807 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /UFZTWD+NimbusMonL-Bold +/FontDescriptor 2626 0 R +/FirstChar 46 +/LastChar 119 +/Widths 2603 0 R +/Encoding 2602 0 R +>> endobj +1063 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /NLAAOO+NimbusMonL-Regu +/FontDescriptor 2628 0 R +/FirstChar 33 +/LastChar 148 +/Widths 2610 0 R +/Encoding 2602 0 R +>> endobj +1198 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /XFCHKA+NimbusSanL-Bold +/FontDescriptor 2630 0 R +/FirstChar 2 +/LastChar 148 +/Widths 2609 0 R +/Encoding 2602 0 R +>> endobj +899 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /MJPQHC+NimbusSanL-Regu +/FontDescriptor 2632 0 R +/FirstChar 2 +/LastChar 235 +/Widths 2613 0 R +/Encoding 2602 0 R +>> endobj +934 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /MUZCCK+NimbusRomNo9L-Medi +/FontDescriptor 2634 0 R +/FirstChar 2 +/LastChar 122 +/Widths 2612 0 R +/Encoding 2602 0 R +>> endobj +898 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /EGICLP+NimbusRomNo9L-Regu +/FontDescriptor 2636 0 R +/FirstChar 2 +/LastChar 150 +/Widths 2614 0 R +/Encoding 2602 0 R +>> endobj +1221 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /NOQXCW+NimbusRomNo9L-ReguItal +/FontDescriptor 2640 0 R +/FirstChar 2 +/LastChar 121 +/Widths 2606 0 R +/Encoding 2602 0 R +>> endobj +979 0 obj << +/Type /Font +/Subtype /Type1 +/BaseFont /KRNMXO+NimbusRomNo9L-Regu-Slant_167 +/FontDescriptor 2638 0 R +/FirstChar 44 +/LastChar 89 +/Widths 2611 0 R +/Encoding 2602 0 R +>> endobj +900 0 obj << +/Type /Pages +/Count 6 +/Parent 2641 0 R +/Kids [894 0 R 932 0 R 976 0 R 1019 0 R 1060 0 R 1104 0 R] +>> endobj +1149 0 obj << +/Type /Pages +/Count 6 +/Parent 2641 0 R +/Kids [1146 0 R 1153 0 R 1173 0 R 1194 0 R 1203 0 R 1209 0 R] +>> endobj +1216 0 obj << +/Type /Pages +/Count 6 +/Parent 2641 0 R +/Kids [1213 0 R 1218 0 R 1225 0 R 1229 0 R 1233 0 R 1237 0 R] +>> endobj +1248 0 obj << +/Type /Pages +/Count 6 +/Parent 2641 0 R +/Kids [1245 0 R 1250 0 R 1258 0 R 1264 0 R 1269 0 R 1275 0 R] +>> endobj +1287 0 obj << +/Type /Pages +/Count 6 +/Parent 2641 0 R +/Kids [1281 0 R 1289 0 R 1295 0 R 1300 0 R 1308 0 R 1312 0 R] +>> endobj +1321 0 obj << +/Type /Pages +/Count 6 +/Parent 2641 0 R +/Kids [1316 0 R 1323 0 R 1327 0 R 1334 0 R 1341 0 R 1346 0 R] +>> endobj +1358 0 obj << +/Type /Pages +/Count 6 +/Parent 2642 0 R +/Kids [1353 0 R 1360 0 R 1364 0 R 1368 0 R 1372 0 R 1377 0 R] +>> endobj +1385 0 obj << +/Type /Pages +/Count 6 +/Parent 2642 0 R +/Kids [1382 0 R 1387 0 R 1393 0 R 1397 0 R 1401 0 R 1405 0 R] +>> endobj +1418 0 obj << +/Type /Pages +/Count 6 +/Parent 2642 0 R +/Kids [1411 0 R 1420 0 R 1424 0 R 1428 0 R 1433 0 R 1437 0 R] +>> endobj +1445 0 obj << +/Type /Pages +/Count 6 +/Parent 2642 0 R +/Kids [1441 0 R 1447 0 R 1455 0 R 1459 0 R 1470 0 R 1478 0 R] +>> endobj +1485 0 obj << +/Type /Pages +/Count 6 +/Parent 2642 0 R +/Kids [1482 0 R 1487 0 R 1493 0 R 1497 0 R 1501 0 R 1507 0 R] +>> endobj +1516 0 obj << +/Type /Pages +/Count 6 +/Parent 2642 0 R +/Kids [1512 0 R 1518 0 R 1524 0 R 1528 0 R 1533 0 R 1537 0 R] +>> endobj +1544 0 obj << +/Type /Pages +/Count 6 +/Parent 2643 0 R +/Kids [1541 0 R 1546 0 R 1550 0 R 1554 0 R 1558 0 R 1562 0 R] +>> endobj +1569 0 obj << +/Type /Pages +/Count 6 +/Parent 2643 0 R +/Kids [1566 0 R 1572 0 R 1576 0 R 1580 0 R 1584 0 R 1588 0 R] +>> endobj +1595 0 obj << +/Type /Pages +/Count 6 +/Parent 2643 0 R +/Kids [1592 0 R 1597 0 R 1601 0 R 1605 0 R 1609 0 R 1613 0 R] +>> endobj +1623 0 obj << +/Type /Pages +/Count 6 +/Parent 2643 0 R +/Kids [1617 0 R 1625 0 R 1629 0 R 1633 0 R 1638 0 R 1643 0 R] +>> endobj +1650 0 obj << +/Type /Pages +/Count 6 +/Parent 2643 0 R +/Kids [1647 0 R 1652 0 R 1656 0 R 1661 0 R 1665 0 R 1669 0 R] +>> endobj +1679 0 obj << +/Type /Pages +/Count 6 +/Parent 2643 0 R +/Kids [1675 0 R 1681 0 R 1688 0 R 1692 0 R 1696 0 R 1700 0 R] +>> endobj +1709 0 obj << +/Type /Pages +/Count 6 +/Parent 2644 0 R +/Kids [1704 0 R 1711 0 R 1717 0 R 1724 0 R 1728 0 R 1732 0 R] +>> endobj +1739 0 obj << +/Type /Pages +/Count 6 +/Parent 2644 0 R +/Kids [1736 0 R 1741 0 R 1745 0 R 1749 0 R 1753 0 R 1757 0 R] +>> endobj +1764 0 obj << +/Type /Pages +/Count 6 +/Parent 2644 0 R +/Kids [1761 0 R 1766 0 R 1770 0 R 1774 0 R 1778 0 R 1782 0 R] +>> endobj +1791 0 obj << +/Type /Pages +/Count 6 +/Parent 2644 0 R +/Kids [1788 0 R 1793 0 R 1800 0 R 1804 0 R 1811 0 R 1816 0 R] +>> endobj +1825 0 obj << +/Type /Pages +/Count 6 +/Parent 2644 0 R +/Kids [1822 0 R 1827 0 R 1831 0 R 1837 0 R 1841 0 R 1845 0 R] +>> endobj +1854 0 obj << +/Type /Pages +/Count 6 +/Parent 2644 0 R +/Kids [1851 0 R 1857 0 R 1862 0 R 1867 0 R 1873 0 R 1878 0 R] +>> endobj +1888 0 obj << +/Type /Pages +/Count 6 +/Parent 2645 0 R +/Kids [1885 0 R 1890 0 R 1896 0 R 1901 0 R 1905 0 R 1912 0 R] +>> endobj +1919 0 obj << +/Type /Pages +/Count 6 +/Parent 2645 0 R +/Kids [1916 0 R 1921 0 R 1925 0 R 1929 0 R 1935 0 R 1944 0 R] +>> endobj +1951 0 obj << +/Type /Pages +/Count 6 +/Parent 2645 0 R +/Kids [1948 0 R 1953 0 R 1957 0 R 1961 0 R 1965 0 R 1969 0 R] +>> endobj +1976 0 obj << +/Type /Pages +/Count 6 +/Parent 2645 0 R +/Kids [1973 0 R 1978 0 R 1986 0 R 1992 0 R 1996 0 R 2000 0 R] +>> endobj +2009 0 obj << +/Type /Pages +/Count 6 +/Parent 2645 0 R +/Kids [2006 0 R 2013 0 R 2017 0 R 2025 0 R 2029 0 R 2033 0 R] +>> endobj +2040 0 obj << +/Type /Pages +/Count 6 +/Parent 2645 0 R +/Kids [2037 0 R 2042 0 R 2046 0 R 2051 0 R 2058 0 R 2065 0 R] +>> endobj +2075 0 obj << +/Type /Pages +/Count 6 +/Parent 2646 0 R +/Kids [2072 0 R 2077 0 R 2083 0 R 2089 0 R 2094 0 R 2098 0 R] +>> endobj +2105 0 obj << +/Type /Pages +/Count 6 +/Parent 2646 0 R +/Kids [2102 0 R 2107 0 R 2111 0 R 2115 0 R 2119 0 R 2123 0 R] +>> endobj +2130 0 obj << +/Type /Pages +/Count 6 +/Parent 2646 0 R +/Kids [2127 0 R 2132 0 R 2136 0 R 2140 0 R 2147 0 R 2151 0 R] +>> endobj +2158 0 obj << +/Type /Pages +/Count 6 +/Parent 2646 0 R +/Kids [2155 0 R 2160 0 R 2164 0 R 2175 0 R 2179 0 R 2185 0 R] +>> endobj +2194 0 obj << +/Type /Pages +/Count 6 +/Parent 2646 0 R +/Kids [2191 0 R 2196 0 R 2200 0 R 2204 0 R 2209 0 R 2327 0 R] +>> endobj +2463 0 obj << +/Type /Pages +/Count 2 +/Parent 2646 0 R +/Kids [2460 0 R 2598 0 R] +>> endobj +2641 0 obj << +/Type /Pages +/Count 36 +/Parent 2647 0 R +/Kids [900 0 R 1149 0 R 1216 0 R 1248 0 R 1287 0 R 1321 0 R] +>> endobj +2642 0 obj << +/Type /Pages +/Count 36 +/Parent 2647 0 R +/Kids [1358 0 R 1385 0 R 1418 0 R 1445 0 R 1485 0 R 1516 0 R] +>> endobj +2643 0 obj << +/Type /Pages +/Count 36 +/Parent 2647 0 R +/Kids [1544 0 R 1569 0 R 1595 0 R 1623 0 R 1650 0 R 1679 0 R] +>> endobj +2644 0 obj << +/Type /Pages +/Count 36 +/Parent 2647 0 R +/Kids [1709 0 R 1739 0 R 1764 0 R 1791 0 R 1825 0 R 1854 0 R] +>> endobj +2645 0 obj << +/Type /Pages +/Count 36 +/Parent 2647 0 R +/Kids [1888 0 R 1919 0 R 1951 0 R 1976 0 R 2009 0 R 2040 0 R] +>> endobj +2646 0 obj << +/Type /Pages +/Count 32 +/Parent 2647 0 R +/Kids [2075 0 R 2105 0 R 2130 0 R 2158 0 R 2194 0 R 2463 0 R] +>> endobj +2647 0 obj << +/Type /Pages +/Count 212 +/Kids [2641 0 R 2642 0 R 2643 0 R 2644 0 R 2645 0 R 2646 0 R] +>> endobj +2648 0 obj << +/Type /Outlines +/First 3 0 R +/Last 883 0 R +/Count 18 +>> endobj +891 0 obj << +/Title 892 0 R +/A 889 0 R +/Parent 883 0 R +/Prev 887 0 R +>> endobj +887 0 obj << +/Title 888 0 R +/A 885 0 R +/Parent 883 0 R +/Next 891 0 R +>> endobj +883 0 obj << +/Title 884 0 R +/A 881 0 R +/Parent 2648 0 R +/Prev 859 0 R +/First 887 0 R +/Last 891 0 R +/Count -2 +>> endobj +879 0 obj << +/Title 880 0 R +/A 877 0 R +/Parent 859 0 R +/Prev 875 0 R +>> endobj +875 0 obj << +/Title 876 0 R +/A 873 0 R +/Parent 859 0 R +/Prev 871 0 R +/Next 879 0 R +>> endobj +871 0 obj << +/Title 872 0 R +/A 869 0 R +/Parent 859 0 R +/Prev 867 0 R +/Next 875 0 R +>> endobj +867 0 obj << +/Title 868 0 R +/A 865 0 R +/Parent 859 0 R +/Prev 863 0 R +/Next 871 0 R +>> endobj +863 0 obj << +/Title 864 0 R +/A 861 0 R +/Parent 859 0 R +/Next 867 0 R +>> endobj +859 0 obj << +/Title 860 0 R +/A 857 0 R +/Parent 2648 0 R +/Prev 815 0 R +/Next 883 0 R +/First 863 0 R +/Last 879 0 R +/Count -5 +>> endobj +855 0 obj << +/Title 856 0 R +/A 853 0 R +/Parent 815 0 R +/Prev 835 0 R +>> endobj +851 0 obj << +/Title 852 0 R +/A 849 0 R +/Parent 835 0 R +/Prev 847 0 R +>> endobj +847 0 obj << +/Title 848 0 R +/A 845 0 R +/Parent 835 0 R +/Prev 843 0 R +/Next 851 0 R +>> endobj +843 0 obj << +/Title 844 0 R +/A 841 0 R +/Parent 835 0 R +/Prev 839 0 R +/Next 847 0 R +>> endobj +839 0 obj << +/Title 840 0 R +/A 837 0 R +/Parent 835 0 R +/Next 843 0 R +>> endobj +835 0 obj << +/Title 836 0 R +/A 833 0 R +/Parent 815 0 R +/Prev 831 0 R +/Next 855 0 R +/First 839 0 R +/Last 851 0 R +/Count -4 +>> endobj +831 0 obj << +/Title 832 0 R +/A 829 0 R +/Parent 815 0 R +/Prev 827 0 R +/Next 835 0 R +>> endobj +827 0 obj << +/Title 828 0 R +/A 825 0 R +/Parent 815 0 R +/Prev 823 0 R +/Next 831 0 R +>> endobj +823 0 obj << +/Title 824 0 R +/A 821 0 R +/Parent 815 0 R +/Prev 819 0 R +/Next 827 0 R +>> endobj +819 0 obj << +/Title 820 0 R +/A 817 0 R +/Parent 815 0 R +/Next 823 0 R +>> endobj +815 0 obj << +/Title 816 0 R +/A 813 0 R +/Parent 2648 0 R +/Prev 787 0 R +/Next 859 0 R +/First 819 0 R +/Last 855 0 R +/Count -6 +>> endobj +811 0 obj << +/Title 812 0 R +/A 809 0 R +/Parent 787 0 R +/Prev 807 0 R +>> endobj +807 0 obj << +/Title 808 0 R +/A 805 0 R +/Parent 787 0 R +/Prev 803 0 R +/Next 811 0 R +>> endobj +803 0 obj << +/Title 804 0 R +/A 801 0 R +/Parent 787 0 R +/Prev 799 0 R +/Next 807 0 R +>> endobj +799 0 obj << +/Title 800 0 R +/A 797 0 R +/Parent 787 0 R +/Prev 795 0 R +/Next 803 0 R +>> endobj +795 0 obj << +/Title 796 0 R +/A 793 0 R +/Parent 787 0 R +/Prev 791 0 R +/Next 799 0 R +>> endobj +791 0 obj << +/Title 792 0 R +/A 789 0 R +/Parent 787 0 R +/Next 795 0 R +>> endobj +787 0 obj << +/Title 788 0 R +/A 785 0 R +/Parent 2648 0 R +/Prev 647 0 R +/Next 815 0 R +/First 791 0 R +/Last 811 0 R +/Count -6 +>> endobj +783 0 obj << +/Title 784 0 R +/A 781 0 R +/Parent 647 0 R +/Prev 707 0 R +>> endobj +779 0 obj << +/Title 780 0 R +/A 777 0 R +/Parent 707 0 R +/Prev 775 0 R +>> endobj +775 0 obj << +/Title 776 0 R +/A 773 0 R +/Parent 707 0 R +/Prev 771 0 R +/Next 779 0 R +>> endobj +771 0 obj << +/Title 772 0 R +/A 769 0 R +/Parent 707 0 R +/Prev 767 0 R +/Next 775 0 R +>> endobj +767 0 obj << +/Title 768 0 R +/A 765 0 R +/Parent 707 0 R +/Prev 763 0 R +/Next 771 0 R +>> endobj +763 0 obj << +/Title 764 0 R +/A 761 0 R +/Parent 707 0 R +/Prev 759 0 R +/Next 767 0 R +>> endobj +759 0 obj << +/Title 760 0 R +/A 757 0 R +/Parent 707 0 R +/Prev 755 0 R +/Next 763 0 R +>> endobj +755 0 obj << +/Title 756 0 R +/A 753 0 R +/Parent 707 0 R +/Prev 751 0 R +/Next 759 0 R +>> endobj +751 0 obj << +/Title 752 0 R +/A 749 0 R +/Parent 707 0 R +/Prev 747 0 R +/Next 755 0 R +>> endobj +747 0 obj << +/Title 748 0 R +/A 745 0 R +/Parent 707 0 R +/Prev 743 0 R +/Next 751 0 R +>> endobj +743 0 obj << +/Title 744 0 R +/A 741 0 R +/Parent 707 0 R +/Prev 739 0 R +/Next 747 0 R +>> endobj +739 0 obj << +/Title 740 0 R +/A 737 0 R +/Parent 707 0 R +/Prev 735 0 R +/Next 743 0 R +>> endobj +735 0 obj << +/Title 736 0 R +/A 733 0 R +/Parent 707 0 R +/Prev 731 0 R +/Next 739 0 R +>> endobj +731 0 obj << +/Title 732 0 R +/A 729 0 R +/Parent 707 0 R +/Prev 727 0 R +/Next 735 0 R +>> endobj +727 0 obj << +/Title 728 0 R +/A 725 0 R +/Parent 707 0 R +/Prev 723 0 R +/Next 731 0 R +>> endobj +723 0 obj << +/Title 724 0 R +/A 721 0 R +/Parent 707 0 R +/Prev 719 0 R +/Next 727 0 R +>> endobj +719 0 obj << +/Title 720 0 R +/A 717 0 R +/Parent 707 0 R +/Prev 715 0 R +/Next 723 0 R +>> endobj +715 0 obj << +/Title 716 0 R +/A 713 0 R +/Parent 707 0 R +/Prev 711 0 R +/Next 719 0 R +>> endobj +711 0 obj << +/Title 712 0 R +/A 709 0 R +/Parent 707 0 R +/Next 715 0 R +>> endobj +707 0 obj << +/Title 708 0 R +/A 705 0 R +/Parent 647 0 R +/Prev 703 0 R +/Next 783 0 R +/First 711 0 R +/Last 779 0 R +/Count -18 +>> endobj +703 0 obj << +/Title 704 0 R +/A 701 0 R +/Parent 647 0 R +/Prev 699 0 R +/Next 707 0 R +>> endobj +699 0 obj << +/Title 700 0 R +/A 697 0 R +/Parent 647 0 R +/Prev 695 0 R +/Next 703 0 R +>> endobj +695 0 obj << +/Title 696 0 R +/A 693 0 R +/Parent 647 0 R +/Prev 691 0 R +/Next 699 0 R +>> endobj +691 0 obj << +/Title 692 0 R +/A 689 0 R +/Parent 647 0 R +/Prev 663 0 R +/Next 695 0 R +>> endobj +687 0 obj << +/Title 688 0 R +/A 685 0 R +/Parent 663 0 R +/Prev 683 0 R +>> endobj +683 0 obj << +/Title 684 0 R +/A 681 0 R +/Parent 663 0 R +/Prev 679 0 R +/Next 687 0 R +>> endobj +679 0 obj << +/Title 680 0 R +/A 677 0 R +/Parent 663 0 R +/Prev 675 0 R +/Next 683 0 R +>> endobj +675 0 obj << +/Title 676 0 R +/A 673 0 R +/Parent 663 0 R +/Prev 671 0 R +/Next 679 0 R +>> endobj +671 0 obj << +/Title 672 0 R +/A 669 0 R +/Parent 663 0 R +/Prev 667 0 R +/Next 675 0 R +>> endobj +667 0 obj << +/Title 668 0 R +/A 665 0 R +/Parent 663 0 R +/Next 671 0 R +>> endobj +663 0 obj << +/Title 664 0 R +/A 661 0 R +/Parent 647 0 R +/Prev 659 0 R +/Next 691 0 R +/First 667 0 R +/Last 687 0 R +/Count -6 +>> endobj +659 0 obj << +/Title 660 0 R +/A 657 0 R +/Parent 647 0 R +/Prev 655 0 R +/Next 663 0 R +>> endobj +655 0 obj << +/Title 656 0 R +/A 653 0 R +/Parent 647 0 R +/Prev 651 0 R +/Next 659 0 R +>> endobj +651 0 obj << +/Title 652 0 R +/A 649 0 R +/Parent 647 0 R +/Next 655 0 R +>> endobj +647 0 obj << +/Title 648 0 R +/A 645 0 R +/Parent 2648 0 R +/Prev 583 0 R +/Next 787 0 R +/First 651 0 R +/Last 783 0 R +/Count -10 +>> endobj +643 0 obj << +/Title 644 0 R +/A 641 0 R +/Parent 583 0 R +/Prev 603 0 R +>> endobj +639 0 obj << +/Title 640 0 R +/A 637 0 R +/Parent 603 0 R +/Prev 635 0 R +>> endobj +635 0 obj << +/Title 636 0 R +/A 633 0 R +/Parent 603 0 R +/Prev 631 0 R +/Next 639 0 R +>> endobj +631 0 obj << +/Title 632 0 R +/A 629 0 R +/Parent 603 0 R +/Prev 627 0 R +/Next 635 0 R +>> endobj +627 0 obj << +/Title 628 0 R +/A 625 0 R +/Parent 603 0 R +/Prev 623 0 R +/Next 631 0 R +>> endobj +623 0 obj << +/Title 624 0 R +/A 621 0 R +/Parent 603 0 R +/Prev 619 0 R +/Next 627 0 R +>> endobj +619 0 obj << +/Title 620 0 R +/A 617 0 R +/Parent 603 0 R +/Prev 615 0 R +/Next 623 0 R +>> endobj +615 0 obj << +/Title 616 0 R +/A 613 0 R +/Parent 603 0 R +/Prev 611 0 R +/Next 619 0 R +>> endobj +611 0 obj << +/Title 612 0 R +/A 609 0 R +/Parent 603 0 R +/Prev 607 0 R +/Next 615 0 R +>> endobj +607 0 obj << +/Title 608 0 R +/A 605 0 R +/Parent 603 0 R +/Next 611 0 R +>> endobj +603 0 obj << +/Title 604 0 R +/A 601 0 R +/Parent 583 0 R +/Prev 587 0 R +/Next 643 0 R +/First 607 0 R +/Last 639 0 R +/Count -9 +>> endobj +599 0 obj << +/Title 600 0 R +/A 597 0 R +/Parent 587 0 R +/Prev 595 0 R +>> endobj +595 0 obj << +/Title 596 0 R +/A 593 0 R +/Parent 587 0 R +/Prev 591 0 R +/Next 599 0 R +>> endobj +591 0 obj << +/Title 592 0 R +/A 589 0 R +/Parent 587 0 R +/Next 595 0 R +>> endobj +587 0 obj << +/Title 588 0 R +/A 585 0 R +/Parent 583 0 R +/Next 603 0 R +/First 591 0 R +/Last 599 0 R +/Count -3 +>> endobj +583 0 obj << +/Title 584 0 R +/A 581 0 R +/Parent 2648 0 R +/Prev 519 0 R +/Next 647 0 R +/First 587 0 R +/Last 643 0 R +/Count -3 +>> endobj +579 0 obj << +/Title 580 0 R +/A 577 0 R +/Parent 551 0 R +/Prev 575 0 R +>> endobj +575 0 obj << +/Title 576 0 R +/A 573 0 R +/Parent 551 0 R +/Prev 571 0 R +/Next 579 0 R +>> endobj +571 0 obj << +/Title 572 0 R +/A 569 0 R +/Parent 551 0 R +/Prev 567 0 R +/Next 575 0 R +>> endobj +567 0 obj << +/Title 568 0 R +/A 565 0 R +/Parent 551 0 R +/Prev 563 0 R +/Next 571 0 R +>> endobj +563 0 obj << +/Title 564 0 R +/A 561 0 R +/Parent 551 0 R +/Prev 559 0 R +/Next 567 0 R +>> endobj +559 0 obj << +/Title 560 0 R +/A 557 0 R +/Parent 551 0 R +/Prev 555 0 R +/Next 563 0 R +>> endobj +555 0 obj << +/Title 556 0 R +/A 553 0 R +/Parent 551 0 R +/Next 559 0 R +>> endobj +551 0 obj << +/Title 552 0 R +/A 549 0 R +/Parent 519 0 R +/Prev 547 0 R +/First 555 0 R +/Last 579 0 R +/Count -7 +>> endobj +547 0 obj << +/Title 548 0 R +/A 545 0 R +/Parent 519 0 R +/Prev 543 0 R +/Next 551 0 R +>> endobj +543 0 obj << +/Title 544 0 R +/A 541 0 R +/Parent 519 0 R +/Prev 539 0 R +/Next 547 0 R +>> endobj +539 0 obj << +/Title 540 0 R +/A 537 0 R +/Parent 519 0 R +/Prev 535 0 R +/Next 543 0 R +>> endobj +535 0 obj << +/Title 536 0 R +/A 533 0 R +/Parent 519 0 R +/Prev 531 0 R +/Next 539 0 R +>> endobj +531 0 obj << +/Title 532 0 R +/A 529 0 R +/Parent 519 0 R +/Prev 527 0 R +/Next 535 0 R +>> endobj +527 0 obj << +/Title 528 0 R +/A 525 0 R +/Parent 519 0 R +/Prev 523 0 R +/Next 531 0 R +>> endobj +523 0 obj << +/Title 524 0 R +/A 521 0 R +/Parent 519 0 R +/Next 527 0 R +>> endobj +519 0 obj << +/Title 520 0 R +/A 517 0 R +/Parent 2648 0 R +/Prev 475 0 R +/Next 583 0 R +/First 523 0 R +/Last 551 0 R +/Count -8 +>> endobj +515 0 obj << +/Title 516 0 R +/A 513 0 R +/Parent 475 0 R +/Prev 511 0 R +>> endobj +511 0 obj << +/Title 512 0 R +/A 509 0 R +/Parent 475 0 R +/Prev 507 0 R +/Next 515 0 R +>> endobj +507 0 obj << +/Title 508 0 R +/A 505 0 R +/Parent 475 0 R +/Prev 503 0 R +/Next 511 0 R +>> endobj +503 0 obj << +/Title 504 0 R +/A 501 0 R +/Parent 475 0 R +/Prev 499 0 R +/Next 507 0 R +>> endobj +499 0 obj << +/Title 500 0 R +/A 497 0 R +/Parent 475 0 R +/Prev 495 0 R +/Next 503 0 R +>> endobj +495 0 obj << +/Title 496 0 R +/A 493 0 R +/Parent 475 0 R +/Prev 491 0 R +/Next 499 0 R +>> endobj +491 0 obj << +/Title 492 0 R +/A 489 0 R +/Parent 475 0 R +/Prev 487 0 R +/Next 495 0 R +>> endobj +487 0 obj << +/Title 488 0 R +/A 485 0 R +/Parent 475 0 R +/Prev 483 0 R +/Next 491 0 R +>> endobj +483 0 obj << +/Title 484 0 R +/A 481 0 R +/Parent 475 0 R +/Prev 479 0 R +/Next 487 0 R +>> endobj +479 0 obj << +/Title 480 0 R +/A 477 0 R +/Parent 475 0 R +/Next 483 0 R +>> endobj +475 0 obj << +/Title 476 0 R +/A 473 0 R +/Parent 2648 0 R +/Prev 451 0 R +/Next 519 0 R +/First 479 0 R +/Last 515 0 R +/Count -10 +>> endobj +471 0 obj << +/Title 472 0 R +/A 469 0 R +/Parent 451 0 R +/Prev 467 0 R +>> endobj +467 0 obj << +/Title 468 0 R +/A 465 0 R +/Parent 451 0 R +/Prev 463 0 R +/Next 471 0 R +>> endobj +463 0 obj << +/Title 464 0 R +/A 461 0 R +/Parent 451 0 R +/Prev 459 0 R +/Next 467 0 R +>> endobj +459 0 obj << +/Title 460 0 R +/A 457 0 R +/Parent 451 0 R +/Prev 455 0 R +/Next 463 0 R +>> endobj +455 0 obj << +/Title 456 0 R +/A 453 0 R +/Parent 451 0 R +/Next 459 0 R +>> endobj +451 0 obj << +/Title 452 0 R +/A 449 0 R +/Parent 2648 0 R +/Prev 439 0 R +/Next 475 0 R +/First 455 0 R +/Last 471 0 R +/Count -5 +>> endobj +447 0 obj << +/Title 448 0 R +/A 445 0 R +/Parent 439 0 R +/Prev 443 0 R +>> endobj +443 0 obj << +/Title 444 0 R +/A 441 0 R +/Parent 439 0 R +/Next 447 0 R +>> endobj +439 0 obj << +/Title 440 0 R +/A 437 0 R +/Parent 2648 0 R +/Prev 415 0 R +/Next 451 0 R +/First 443 0 R +/Last 447 0 R +/Count -2 +>> endobj +435 0 obj << +/Title 436 0 R +/A 433 0 R +/Parent 415 0 R +/Prev 431 0 R +>> endobj +431 0 obj << +/Title 432 0 R +/A 429 0 R +/Parent 415 0 R +/Prev 427 0 R +/Next 435 0 R +>> endobj +427 0 obj << +/Title 428 0 R +/A 425 0 R +/Parent 415 0 R +/Prev 423 0 R +/Next 431 0 R +>> endobj +423 0 obj << +/Title 424 0 R +/A 421 0 R +/Parent 415 0 R +/Prev 419 0 R +/Next 427 0 R +>> endobj +419 0 obj << +/Title 420 0 R +/A 417 0 R +/Parent 415 0 R +/Next 423 0 R +>> endobj +415 0 obj << +/Title 416 0 R +/A 413 0 R +/Parent 2648 0 R +/Prev 383 0 R +/Next 439 0 R +/First 419 0 R +/Last 435 0 R +/Count -5 +>> endobj +411 0 obj << +/Title 412 0 R +/A 409 0 R +/Parent 383 0 R +/Prev 407 0 R +>> endobj +407 0 obj << +/Title 408 0 R +/A 405 0 R +/Parent 383 0 R +/Prev 403 0 R +/Next 411 0 R +>> endobj +403 0 obj << +/Title 404 0 R +/A 401 0 R +/Parent 383 0 R +/Prev 399 0 R +/Next 407 0 R +>> endobj +399 0 obj << +/Title 400 0 R +/A 397 0 R +/Parent 383 0 R +/Prev 395 0 R +/Next 403 0 R +>> endobj +395 0 obj << +/Title 396 0 R +/A 393 0 R +/Parent 383 0 R +/Prev 391 0 R +/Next 399 0 R +>> endobj +391 0 obj << +/Title 392 0 R +/A 389 0 R +/Parent 383 0 R +/Prev 387 0 R +/Next 395 0 R +>> endobj +387 0 obj << +/Title 388 0 R +/A 385 0 R +/Parent 383 0 R +/Next 391 0 R +>> endobj +383 0 obj << +/Title 384 0 R +/A 381 0 R +/Parent 2648 0 R +/Prev 295 0 R +/Next 415 0 R +/First 387 0 R +/Last 411 0 R +/Count -7 +>> endobj +379 0 obj << +/Title 380 0 R +/A 377 0 R +/Parent 295 0 R +/Prev 375 0 R +>> endobj +375 0 obj << +/Title 376 0 R +/A 373 0 R +/Parent 295 0 R +/Prev 347 0 R +/Next 379 0 R +>> endobj +371 0 obj << +/Title 372 0 R +/A 369 0 R +/Parent 347 0 R +/Prev 367 0 R +>> endobj +367 0 obj << +/Title 368 0 R +/A 365 0 R +/Parent 347 0 R +/Prev 363 0 R +/Next 371 0 R +>> endobj +363 0 obj << +/Title 364 0 R +/A 361 0 R +/Parent 347 0 R +/Prev 359 0 R +/Next 367 0 R +>> endobj +359 0 obj << +/Title 360 0 R +/A 357 0 R +/Parent 347 0 R +/Prev 355 0 R +/Next 363 0 R +>> endobj +355 0 obj << +/Title 356 0 R +/A 353 0 R +/Parent 347 0 R +/Prev 351 0 R +/Next 359 0 R +>> endobj +351 0 obj << +/Title 352 0 R +/A 349 0 R +/Parent 347 0 R +/Next 355 0 R +>> endobj +347 0 obj << +/Title 348 0 R +/A 345 0 R +/Parent 295 0 R +/Prev 311 0 R +/Next 375 0 R +/First 351 0 R +/Last 371 0 R +/Count -6 +>> endobj +343 0 obj << +/Title 344 0 R +/A 341 0 R +/Parent 311 0 R +/Prev 339 0 R +>> endobj +339 0 obj << +/Title 340 0 R +/A 337 0 R +/Parent 311 0 R +/Prev 335 0 R +/Next 343 0 R +>> endobj +335 0 obj << +/Title 336 0 R +/A 333 0 R +/Parent 311 0 R +/Prev 331 0 R +/Next 339 0 R +>> endobj +331 0 obj << +/Title 332 0 R +/A 329 0 R +/Parent 311 0 R +/Prev 327 0 R +/Next 335 0 R +>> endobj +327 0 obj << +/Title 328 0 R +/A 325 0 R +/Parent 311 0 R +/Prev 323 0 R +/Next 331 0 R +>> endobj +323 0 obj << +/Title 324 0 R +/A 321 0 R +/Parent 311 0 R +/Prev 319 0 R +/Next 327 0 R +>> endobj +319 0 obj << +/Title 320 0 R +/A 317 0 R +/Parent 311 0 R +/Prev 315 0 R +/Next 323 0 R +>> endobj +315 0 obj << +/Title 316 0 R +/A 313 0 R +/Parent 311 0 R +/Next 319 0 R +>> endobj +311 0 obj << +/Title 312 0 R +/A 309 0 R +/Parent 295 0 R +/Prev 307 0 R +/Next 347 0 R +/First 315 0 R +/Last 343 0 R +/Count -8 +>> endobj +307 0 obj << +/Title 308 0 R +/A 305 0 R +/Parent 295 0 R +/Prev 303 0 R +/Next 311 0 R +>> endobj +303 0 obj << +/Title 304 0 R +/A 301 0 R +/Parent 295 0 R +/Prev 299 0 R +/Next 307 0 R +>> endobj +299 0 obj << +/Title 300 0 R +/A 297 0 R +/Parent 295 0 R +/Next 303 0 R +>> endobj +295 0 obj << +/Title 296 0 R +/A 293 0 R +/Parent 2648 0 R +/Prev 247 0 R +/Next 383 0 R +/First 299 0 R +/Last 379 0 R +/Count -7 +>> endobj +291 0 obj << +/Title 292 0 R +/A 289 0 R +/Parent 247 0 R +/Prev 267 0 R +>> endobj +287 0 obj << +/Title 288 0 R +/A 285 0 R +/Parent 275 0 R +/Prev 283 0 R +>> endobj +283 0 obj << +/Title 284 0 R +/A 281 0 R +/Parent 275 0 R +/Prev 279 0 R +/Next 287 0 R +>> endobj +279 0 obj << +/Title 280 0 R +/A 277 0 R +/Parent 275 0 R +/Next 283 0 R +>> endobj +275 0 obj << +/Title 276 0 R +/A 273 0 R +/Parent 267 0 R +/Prev 271 0 R +/First 279 0 R +/Last 287 0 R +/Count -3 +>> endobj +271 0 obj << +/Title 272 0 R +/A 269 0 R +/Parent 267 0 R +/Next 275 0 R +>> endobj +267 0 obj << +/Title 268 0 R +/A 265 0 R +/Parent 247 0 R +/Prev 263 0 R +/Next 291 0 R +/First 271 0 R +/Last 275 0 R +/Count -2 +>> endobj +263 0 obj << +/Title 264 0 R +/A 261 0 R +/Parent 247 0 R +/Prev 259 0 R +/Next 267 0 R +>> endobj +259 0 obj << +/Title 260 0 R +/A 257 0 R +/Parent 247 0 R +/Prev 255 0 R +/Next 263 0 R +>> endobj +255 0 obj << +/Title 256 0 R +/A 253 0 R +/Parent 247 0 R +/Prev 251 0 R +/Next 259 0 R +>> endobj +251 0 obj << +/Title 252 0 R +/A 249 0 R +/Parent 247 0 R +/Next 255 0 R +>> endobj +247 0 obj << +/Title 248 0 R +/A 245 0 R +/Parent 2648 0 R +/Prev 219 0 R +/Next 295 0 R +/First 251 0 R +/Last 291 0 R +/Count -6 +>> endobj +243 0 obj << +/Title 244 0 R +/A 241 0 R +/Parent 219 0 R +/Prev 239 0 R +>> endobj +239 0 obj << +/Title 240 0 R +/A 237 0 R +/Parent 219 0 R +/Prev 235 0 R +/Next 243 0 R +>> endobj +235 0 obj << +/Title 236 0 R +/A 233 0 R +/Parent 219 0 R +/Prev 231 0 R +/Next 239 0 R +>> endobj +231 0 obj << +/Title 232 0 R +/A 229 0 R +/Parent 219 0 R +/Prev 227 0 R +/Next 235 0 R +>> endobj +227 0 obj << +/Title 228 0 R +/A 225 0 R +/Parent 219 0 R +/Prev 223 0 R +/Next 231 0 R +>> endobj +223 0 obj << +/Title 224 0 R +/A 221 0 R +/Parent 219 0 R +/Next 227 0 R +>> endobj +219 0 obj << +/Title 220 0 R +/A 217 0 R +/Parent 2648 0 R +/Prev 71 0 R +/Next 247 0 R +/First 223 0 R +/Last 243 0 R +/Count -6 +>> endobj +215 0 obj << +/Title 216 0 R +/A 213 0 R +/Parent 71 0 R +/Prev 199 0 R +>> endobj +211 0 obj << +/Title 212 0 R +/A 209 0 R +/Parent 199 0 R +/Prev 207 0 R +>> endobj +207 0 obj << +/Title 208 0 R +/A 205 0 R +/Parent 199 0 R +/Prev 203 0 R +/Next 211 0 R +>> endobj +203 0 obj << +/Title 204 0 R +/A 201 0 R +/Parent 199 0 R +/Next 207 0 R +>> endobj +199 0 obj << +/Title 200 0 R +/A 197 0 R +/Parent 71 0 R +/Prev 195 0 R +/Next 215 0 R +/First 203 0 R +/Last 211 0 R +/Count -3 +>> endobj +195 0 obj << +/Title 196 0 R +/A 193 0 R +/Parent 71 0 R +/Prev 191 0 R +/Next 199 0 R +>> endobj +191 0 obj << +/Title 192 0 R +/A 189 0 R +/Parent 71 0 R +/Prev 187 0 R +/Next 195 0 R +>> endobj +187 0 obj << +/Title 188 0 R +/A 185 0 R +/Parent 71 0 R +/Prev 151 0 R +/Next 191 0 R +>> endobj +183 0 obj << +/Title 184 0 R +/A 181 0 R +/Parent 151 0 R +/Prev 179 0 R +>> endobj +179 0 obj << +/Title 180 0 R +/A 177 0 R +/Parent 151 0 R +/Prev 175 0 R +/Next 183 0 R +>> endobj +175 0 obj << +/Title 176 0 R +/A 173 0 R +/Parent 151 0 R +/Prev 159 0 R +/Next 179 0 R +>> endobj +171 0 obj << +/Title 172 0 R +/A 169 0 R +/Parent 159 0 R +/Prev 167 0 R +>> endobj +167 0 obj << +/Title 168 0 R +/A 165 0 R +/Parent 159 0 R +/Prev 163 0 R +/Next 171 0 R +>> endobj +163 0 obj << +/Title 164 0 R +/A 161 0 R +/Parent 159 0 R +/Next 167 0 R +>> endobj +159 0 obj << +/Title 160 0 R +/A 157 0 R +/Parent 151 0 R +/Prev 155 0 R +/Next 175 0 R +/First 163 0 R +/Last 171 0 R +/Count -3 +>> endobj +155 0 obj << +/Title 156 0 R +/A 153 0 R +/Parent 151 0 R +/Next 159 0 R +>> endobj +151 0 obj << +/Title 152 0 R +/A 149 0 R +/Parent 71 0 R +/Prev 103 0 R +/Next 187 0 R +/First 155 0 R +/Last 183 0 R +/Count -5 +>> endobj +147 0 obj << +/Title 148 0 R +/A 145 0 R +/Parent 103 0 R +/Prev 143 0 R +>> endobj +143 0 obj << +/Title 144 0 R +/A 141 0 R +/Parent 103 0 R +/Prev 139 0 R +/Next 147 0 R +>> endobj +139 0 obj << +/Title 140 0 R +/A 137 0 R +/Parent 103 0 R +/Prev 135 0 R +/Next 143 0 R +>> endobj +135 0 obj << +/Title 136 0 R +/A 133 0 R +/Parent 103 0 R +/Prev 131 0 R +/Next 139 0 R +>> endobj +131 0 obj << +/Title 132 0 R +/A 129 0 R +/Parent 103 0 R +/Prev 127 0 R +/Next 135 0 R +>> endobj +127 0 obj << +/Title 128 0 R +/A 125 0 R +/Parent 103 0 R +/Prev 123 0 R +/Next 131 0 R +>> endobj +123 0 obj << +/Title 124 0 R +/A 121 0 R +/Parent 103 0 R +/Prev 119 0 R +/Next 127 0 R +>> endobj +119 0 obj << +/Title 120 0 R +/A 117 0 R +/Parent 103 0 R +/Prev 115 0 R +/Next 123 0 R +>> endobj +115 0 obj << +/Title 116 0 R +/A 113 0 R +/Parent 103 0 R +/Prev 111 0 R +/Next 119 0 R +>> endobj +111 0 obj << +/Title 112 0 R +/A 109 0 R +/Parent 103 0 R +/Prev 107 0 R +/Next 115 0 R +>> endobj +107 0 obj << +/Title 108 0 R +/A 105 0 R +/Parent 103 0 R +/Next 111 0 R +>> endobj +103 0 obj << +/Title 104 0 R +/A 101 0 R +/Parent 71 0 R +/Prev 75 0 R +/Next 151 0 R +/First 107 0 R +/Last 147 0 R +/Count -11 +>> endobj +99 0 obj << +/Title 100 0 R +/A 97 0 R +/Parent 75 0 R +/Prev 79 0 R +>> endobj +95 0 obj << +/Title 96 0 R +/A 93 0 R +/Parent 79 0 R +/Prev 91 0 R +>> endobj +91 0 obj << +/Title 92 0 R +/A 89 0 R +/Parent 79 0 R +/Prev 87 0 R +/Next 95 0 R +>> endobj +87 0 obj << +/Title 88 0 R +/A 85 0 R +/Parent 79 0 R +/Prev 83 0 R +/Next 91 0 R +>> endobj +83 0 obj << +/Title 84 0 R +/A 81 0 R +/Parent 79 0 R +/Next 87 0 R +>> endobj +79 0 obj << +/Title 80 0 R +/A 77 0 R +/Parent 75 0 R +/Next 99 0 R +/First 83 0 R +/Last 95 0 R +/Count -4 +>> endobj +75 0 obj << +/Title 76 0 R +/A 73 0 R +/Parent 71 0 R +/Next 103 0 R +/First 79 0 R +/Last 99 0 R +/Count -2 +>> endobj +71 0 obj << +/Title 72 0 R +/A 69 0 R +/Parent 2648 0 R +/Prev 55 0 R +/Next 219 0 R +/First 75 0 R +/Last 215 0 R +/Count -8 +>> endobj +67 0 obj << +/Title 68 0 R +/A 65 0 R +/Parent 55 0 R +/Prev 63 0 R +>> endobj +63 0 obj << +/Title 64 0 R +/A 61 0 R +/Parent 55 0 R +/Prev 59 0 R +/Next 67 0 R +>> endobj +59 0 obj << +/Title 60 0 R +/A 57 0 R +/Parent 55 0 R +/Next 63 0 R +>> endobj +55 0 obj << +/Title 56 0 R +/A 53 0 R +/Parent 2648 0 R +/Prev 3 0 R +/Next 71 0 R +/First 59 0 R +/Last 67 0 R +/Count -3 +>> endobj +51 0 obj << +/Title 52 0 R +/A 49 0 R +/Parent 3 0 R +/Prev 47 0 R +>> endobj +47 0 obj << +/Title 48 0 R +/A 45 0 R +/Parent 3 0 R +/Prev 43 0 R +/Next 51 0 R +>> endobj +43 0 obj << +/Title 44 0 R +/A 41 0 R +/Parent 3 0 R +/Prev 39 0 R +/Next 47 0 R +>> endobj +39 0 obj << +/Title 40 0 R +/A 37 0 R +/Parent 3 0 R +/Prev 35 0 R +/Next 43 0 R +>> endobj +35 0 obj << +/Title 36 0 R +/A 33 0 R +/Parent 3 0 R +/Prev 15 0 R +/Next 39 0 R +>> endobj +31 0 obj << +/Title 32 0 R +/A 29 0 R +/Parent 15 0 R +/Prev 27 0 R +>> endobj +27 0 obj << +/Title 28 0 R +/A 25 0 R +/Parent 15 0 R +/Prev 23 0 R +/Next 31 0 R +>> endobj +23 0 obj << +/Title 24 0 R +/A 21 0 R +/Parent 15 0 R +/Prev 19 0 R +/Next 27 0 R +>> endobj +19 0 obj << +/Title 20 0 R +/A 17 0 R +/Parent 15 0 R +/Next 23 0 R +>> endobj +15 0 obj << +/Title 16 0 R +/A 13 0 R +/Parent 3 0 R +/Prev 11 0 R +/Next 35 0 R +/First 19 0 R +/Last 31 0 R +/Count -4 +>> endobj +11 0 obj << +/Title 12 0 R +/A 9 0 R +/Parent 3 0 R +/Prev 7 0 R +/Next 15 0 R +>> endobj +7 0 obj << +/Title 8 0 R +/A 5 0 R +/Parent 3 0 R +/Next 11 0 R +>> endobj +3 0 obj << +/Title 4 0 R +/A 1 0 R +/Parent 2648 0 R +/Next 55 0 R +/First 7 0 R +/Last 51 0 R +/Count -8 +>> endobj +2649 0 obj << +/Names [(Doc-Start) 897 0 R (Hfootnote.1) 1380 0 R (Hfootnote.2) 1515 0 R (Hfootnote.3) 1641 0 R (Hfootnote.4) 1722 0 R (Item.1) 1240 0 R] +/Limits [(Doc-Start) (Item.1)] +>> endobj +2650 0 obj << +/Names [(Item.10) 1319 0 R (Item.11) 1320 0 R (Item.12) 1330 0 R (Item.13) 1331 0 R (Item.14) 1349 0 R (Item.15) 1350 0 R] +/Limits [(Item.10) (Item.15)] +>> endobj +2651 0 obj << +/Names [(Item.16) 1351 0 R (Item.17) 1414 0 R (Item.18) 1415 0 R (Item.19) 1416 0 R (Item.2) 1241 0 R (Item.20) 1417 0 R] +/Limits [(Item.16) (Item.20)] +>> endobj +2652 0 obj << +/Names [(Item.21) 1444 0 R (Item.22) 1450 0 R (Item.23) 1451 0 R (Item.24) 1462 0 R (Item.25) 1463 0 R (Item.26) 1464 0 R] +/Limits [(Item.21) (Item.26)] +>> endobj +2653 0 obj << +/Names [(Item.27) 1465 0 R (Item.28) 1466 0 R (Item.29) 1467 0 R (Item.3) 1242 0 R (Item.30) 1468 0 R (Item.31) 1473 0 R] +/Limits [(Item.27) (Item.31)] +>> endobj +2654 0 obj << +/Names [(Item.32) 1474 0 R (Item.33) 1475 0 R (Item.34) 1620 0 R (Item.35) 1621 0 R (Item.36) 1622 0 R (Item.37) 1672 0 R] +/Limits [(Item.32) (Item.37)] +>> endobj +2655 0 obj << +/Names [(Item.38) 1673 0 R (Item.39) 1678 0 R (Item.4) 1243 0 R (Item.40) 1684 0 R (Item.41) 1685 0 R (Item.42) 1686 0 R] +/Limits [(Item.38) (Item.42)] +>> endobj +2656 0 obj << +/Names [(Item.43) 1707 0 R (Item.44) 1708 0 R (Item.45) 1714 0 R (Item.46) 1720 0 R (Item.47) 1721 0 R (Item.48) 1785 0 R] +/Limits [(Item.43) (Item.48)] +>> endobj +2657 0 obj << +/Names [(Item.49) 1786 0 R (Item.5) 1284 0 R (Item.50) 1796 0 R (Item.51) 1797 0 R (Item.52) 1798 0 R (Item.53) 1808 0 R] +/Limits [(Item.49) (Item.53)] +>> endobj +2658 0 obj << +/Names [(Item.54) 1809 0 R (Item.55) 1819 0 R (Item.56) 1820 0 R (Item.57) 1834 0 R (Item.58) 1835 0 R (Item.59) 1881 0 R] +/Limits [(Item.54) (Item.59)] +>> endobj +2659 0 obj << +/Names [(Item.6) 1285 0 R (Item.60) 1882 0 R (Item.61) 1883 0 R (Item.62) 1908 0 R (Item.63) 1909 0 R (Item.64) 1910 0 R] +/Limits [(Item.6) (Item.64)] +>> endobj +2660 0 obj << +/Names [(Item.65) 1932 0 R (Item.66) 1933 0 R (Item.67) 1938 0 R (Item.68) 1939 0 R (Item.69) 1940 0 R (Item.7) 1286 0 R] +/Limits [(Item.65) (Item.7)] +>> endobj +2661 0 obj << +/Names [(Item.70) 1941 0 R (Item.71) 1942 0 R (Item.72) 2068 0 R (Item.73) 2069 0 R (Item.74) 2070 0 R (Item.75) 2143 0 R] +/Limits [(Item.70) (Item.75)] +>> endobj +2662 0 obj << +/Names [(Item.76) 2144 0 R (Item.77) 2145 0 R (Item.78) 2167 0 R (Item.79) 2168 0 R (Item.8) 1303 0 R (Item.80) 2169 0 R] +/Limits [(Item.76) (Item.80)] +>> endobj +2663 0 obj << +/Names [(Item.81) 2170 0 R (Item.82) 2171 0 R (Item.83) 2172 0 R (Item.84) 2173 0 R (Item.9) 1304 0 R (chapter*.1) 935 0 R] +/Limits [(Item.81) (chapter*.1)] +>> endobj +2664 0 obj << +/Names [(chapter*.2) 1176 0 R (chapter.1) 2 0 R (chapter.10) 450 0 R (chapter.11) 474 0 R (chapter.12) 518 0 R (chapter.13) 582 0 R] +/Limits [(chapter*.2) (chapter.13)] +>> endobj +2665 0 obj << +/Names [(chapter.14) 646 0 R (chapter.15) 786 0 R (chapter.16) 814 0 R (chapter.17) 858 0 R (chapter.18) 882 0 R (chapter.2) 54 0 R] +/Limits [(chapter.14) (chapter.2)] +>> endobj +2666 0 obj << +/Names [(chapter.3) 70 0 R (chapter.4) 218 0 R (chapter.5) 246 0 R (chapter.6) 294 0 R (chapter.7) 382 0 R (chapter.8) 414 0 R] +/Limits [(chapter.3) (chapter.8)] +>> endobj +2667 0 obj << +/Names [(chapter.9) 438 0 R (page.1) 896 0 R (page.10) 1205 0 R (page.100) 1667 0 R (page.101) 1671 0 R (page.102) 1677 0 R] +/Limits [(chapter.9) (page.102)] +>> endobj +2668 0 obj << +/Names [(page.103) 1683 0 R (page.104) 1690 0 R (page.105) 1694 0 R (page.106) 1698 0 R (page.107) 1702 0 R (page.108) 1706 0 R] +/Limits [(page.103) (page.108)] +>> endobj +2669 0 obj << +/Names [(page.109) 1713 0 R (page.11) 1211 0 R (page.110) 1719 0 R (page.111) 1726 0 R (page.112) 1730 0 R (page.113) 1734 0 R] +/Limits [(page.109) (page.113)] +>> endobj +2670 0 obj << +/Names [(page.114) 1738 0 R (page.115) 1743 0 R (page.116) 1747 0 R (page.117) 1751 0 R (page.118) 1755 0 R (page.119) 1759 0 R] +/Limits [(page.114) (page.119)] +>> endobj +2671 0 obj << +/Names [(page.12) 1215 0 R (page.120) 1763 0 R (page.121) 1768 0 R (page.122) 1772 0 R (page.123) 1776 0 R (page.124) 1780 0 R] +/Limits [(page.12) (page.124)] +>> endobj +2672 0 obj << +/Names [(page.125) 1784 0 R (page.126) 1790 0 R (page.127) 1795 0 R (page.128) 1802 0 R (page.129) 1806 0 R (page.13) 1220 0 R] +/Limits [(page.125) (page.13)] +>> endobj +2673 0 obj << +/Names [(page.130) 1813 0 R (page.131) 1818 0 R (page.132) 1824 0 R (page.133) 1829 0 R (page.134) 1833 0 R (page.135) 1839 0 R] +/Limits [(page.130) (page.135)] +>> endobj +2674 0 obj << +/Names [(page.136) 1843 0 R (page.137) 1847 0 R (page.138) 1853 0 R (page.139) 1859 0 R (page.14) 1227 0 R (page.140) 1864 0 R] +/Limits [(page.136) (page.140)] +>> endobj +2675 0 obj << +/Names [(page.141) 1869 0 R (page.142) 1875 0 R (page.143) 1880 0 R (page.144) 1887 0 R (page.145) 1892 0 R (page.146) 1898 0 R] +/Limits [(page.141) (page.146)] +>> endobj +2676 0 obj << +/Names [(page.147) 1903 0 R (page.148) 1907 0 R (page.149) 1914 0 R (page.15) 1231 0 R (page.150) 1918 0 R (page.151) 1923 0 R] +/Limits [(page.147) (page.151)] +>> endobj +2677 0 obj << +/Names [(page.152) 1927 0 R (page.153) 1931 0 R (page.154) 1937 0 R (page.155) 1946 0 R (page.156) 1950 0 R (page.157) 1955 0 R] +/Limits [(page.152) (page.157)] +>> endobj +2678 0 obj << +/Names [(page.158) 1959 0 R (page.159) 1963 0 R (page.16) 1235 0 R (page.160) 1967 0 R (page.161) 1971 0 R (page.162) 1975 0 R] +/Limits [(page.158) (page.162)] +>> endobj +2679 0 obj << +/Names [(page.163) 1980 0 R (page.164) 1988 0 R (page.165) 1994 0 R (page.166) 1998 0 R (page.167) 2002 0 R (page.168) 2008 0 R] +/Limits [(page.163) (page.168)] +>> endobj +2680 0 obj << +/Names [(page.169) 2015 0 R (page.17) 1239 0 R (page.170) 2019 0 R (page.171) 2027 0 R (page.172) 2031 0 R (page.173) 2035 0 R] +/Limits [(page.169) (page.173)] +>> endobj +2681 0 obj << +/Names [(page.174) 2039 0 R (page.175) 2044 0 R (page.176) 2048 0 R (page.177) 2053 0 R (page.178) 2060 0 R (page.179) 2067 0 R] +/Limits [(page.174) (page.179)] +>> endobj +2682 0 obj << +/Names [(page.18) 1247 0 R (page.180) 2074 0 R (page.181) 2079 0 R (page.182) 2085 0 R (page.183) 2091 0 R (page.184) 2096 0 R] +/Limits [(page.18) (page.184)] +>> endobj +2683 0 obj << +/Names [(page.185) 2100 0 R (page.186) 2104 0 R (page.187) 2109 0 R (page.188) 2113 0 R (page.189) 2117 0 R (page.19) 1252 0 R] +/Limits [(page.185) (page.19)] +>> endobj +2684 0 obj << +/Names [(page.190) 2121 0 R (page.191) 2125 0 R (page.192) 2129 0 R (page.193) 2134 0 R (page.194) 2138 0 R (page.195) 2142 0 R] +/Limits [(page.190) (page.195)] +>> endobj +2685 0 obj << +/Names [(page.196) 2149 0 R (page.197) 2153 0 R (page.198) 2157 0 R (page.199) 2162 0 R (page.2) 978 0 R (page.20) 1260 0 R] +/Limits [(page.196) (page.20)] +>> endobj +2686 0 obj << +/Names [(page.200) 2166 0 R (page.201) 2177 0 R (page.202) 2181 0 R (page.203) 2187 0 R (page.204) 2193 0 R (page.205) 2198 0 R] +/Limits [(page.200) (page.205)] +>> endobj +2687 0 obj << +/Names [(page.206) 2202 0 R (page.207) 2206 0 R (page.208) 2211 0 R (page.209) 2329 0 R (page.21) 1266 0 R (page.210) 2462 0 R] +/Limits [(page.206) (page.210)] +>> endobj +2688 0 obj << +/Names [(page.211) 2600 0 R (page.22) 1271 0 R (page.23) 1277 0 R (page.24) 1283 0 R (page.25) 1291 0 R (page.26) 1297 0 R] +/Limits [(page.211) (page.26)] +>> endobj +2689 0 obj << +/Names [(page.27) 1302 0 R (page.28) 1310 0 R (page.29) 1314 0 R (page.3) 1021 0 R (page.30) 1318 0 R (page.31) 1325 0 R] +/Limits [(page.27) (page.31)] +>> endobj +2690 0 obj << +/Names [(page.32) 1329 0 R (page.33) 1336 0 R (page.34) 1343 0 R (page.35) 1348 0 R (page.36) 1355 0 R (page.37) 1362 0 R] +/Limits [(page.32) (page.37)] +>> endobj +2691 0 obj << +/Names [(page.38) 1366 0 R (page.39) 1370 0 R (page.4) 1062 0 R (page.40) 1374 0 R (page.41) 1379 0 R (page.42) 1384 0 R] +/Limits [(page.38) (page.42)] +>> endobj +2692 0 obj << +/Names [(page.43) 1389 0 R (page.44) 1395 0 R (page.45) 1399 0 R (page.46) 1403 0 R (page.47) 1407 0 R (page.48) 1413 0 R] +/Limits [(page.43) (page.48)] +>> endobj +2693 0 obj << +/Names [(page.49) 1422 0 R (page.5) 1106 0 R (page.50) 1426 0 R (page.51) 1430 0 R (page.52) 1435 0 R (page.53) 1439 0 R] +/Limits [(page.49) (page.53)] +>> endobj +2694 0 obj << +/Names [(page.54) 1443 0 R (page.55) 1449 0 R (page.56) 1457 0 R (page.57) 1461 0 R (page.58) 1472 0 R (page.59) 1480 0 R] +/Limits [(page.54) (page.59)] +>> endobj +2695 0 obj << +/Names [(page.6) 1148 0 R (page.60) 1484 0 R (page.61) 1489 0 R (page.62) 1495 0 R (page.63) 1499 0 R (page.64) 1503 0 R] +/Limits [(page.6) (page.64)] +>> endobj +2696 0 obj << +/Names [(page.65) 1509 0 R (page.66) 1514 0 R (page.67) 1520 0 R (page.68) 1526 0 R (page.69) 1530 0 R (page.7) 1155 0 R] +/Limits [(page.65) (page.7)] +>> endobj +2697 0 obj << +/Names [(page.70) 1535 0 R (page.71) 1539 0 R (page.72) 1543 0 R (page.73) 1548 0 R (page.74) 1552 0 R (page.75) 1556 0 R] +/Limits [(page.70) (page.75)] +>> endobj +2698 0 obj << +/Names [(page.76) 1560 0 R (page.77) 1564 0 R (page.78) 1568 0 R (page.79) 1574 0 R (page.8) 1175 0 R (page.80) 1578 0 R] +/Limits [(page.76) (page.80)] +>> endobj +2699 0 obj << +/Names [(page.81) 1582 0 R (page.82) 1586 0 R (page.83) 1590 0 R (page.84) 1594 0 R (page.85) 1599 0 R (page.86) 1603 0 R] +/Limits [(page.81) (page.86)] +>> endobj +2700 0 obj << +/Names [(page.87) 1607 0 R (page.88) 1611 0 R (page.89) 1615 0 R (page.9) 1196 0 R (page.90) 1619 0 R (page.91) 1627 0 R] +/Limits [(page.87) (page.91)] +>> endobj +2701 0 obj << +/Names [(page.92) 1631 0 R (page.93) 1635 0 R (page.94) 1640 0 R (page.95) 1645 0 R (page.96) 1649 0 R (page.97) 1654 0 R] +/Limits [(page.92) (page.97)] +>> endobj +2702 0 obj << +/Names [(page.98) 1658 0 R (page.99) 1663 0 R (section*.10) 94 0 R (section*.11) 154 0 R (section*.12) 162 0 R (section*.13) 166 0 R] +/Limits [(page.98) (section*.13)] +>> endobj +2703 0 obj << +/Names [(section*.14) 170 0 R (section*.15) 278 0 R (section*.16) 282 0 R (section*.17) 286 0 R (section*.3) 1197 0 R (section*.4) 1199 0 R] +/Limits [(section*.14) (section*.4)] +>> endobj +2704 0 obj << +/Names [(section*.5) 1200 0 R (section*.6) 1206 0 R (section*.7) 82 0 R (section*.8) 86 0 R (section*.9) 90 0 R (section.1.1) 6 0 R] +/Limits [(section*.5) (section.1.1)] +>> endobj +2705 0 obj << +/Names [(section.1.2) 10 0 R (section.1.3) 14 0 R (section.1.4) 34 0 R (section.1.5) 38 0 R (section.1.6) 42 0 R (section.1.7) 46 0 R] +/Limits [(section.1.2) (section.1.7)] +>> endobj +2706 0 obj << +/Names [(section.1.8) 50 0 R (section.10.1) 454 0 R (section.10.2) 458 0 R (section.10.3) 462 0 R (section.10.4) 466 0 R (section.10.5) 470 0 R] +/Limits [(section.1.8) (section.10.5)] +>> endobj +2707 0 obj << +/Names [(section.11.1) 478 0 R (section.11.10) 514 0 R (section.11.2) 482 0 R (section.11.3) 486 0 R (section.11.4) 490 0 R (section.11.5) 494 0 R] +/Limits [(section.11.1) (section.11.5)] +>> endobj +2708 0 obj << +/Names [(section.11.6) 498 0 R (section.11.7) 502 0 R (section.11.8) 506 0 R (section.11.9) 510 0 R (section.12.1) 522 0 R (section.12.2) 526 0 R] +/Limits [(section.11.6) (section.12.2)] +>> endobj +2709 0 obj << +/Names [(section.12.3) 530 0 R (section.12.4) 534 0 R (section.12.5) 538 0 R (section.12.6) 542 0 R (section.12.7) 546 0 R (section.12.8) 550 0 R] +/Limits [(section.12.3) (section.12.8)] +>> endobj +2710 0 obj << +/Names [(section.13.1) 586 0 R (section.13.2) 602 0 R (section.13.3) 642 0 R (section.14.1) 650 0 R (section.14.10) 782 0 R (section.14.2) 654 0 R] +/Limits [(section.13.1) (section.14.2)] +>> endobj +2711 0 obj << +/Names [(section.14.3) 658 0 R (section.14.4) 662 0 R (section.14.5) 690 0 R (section.14.6) 694 0 R (section.14.7) 698 0 R (section.14.8) 702 0 R] +/Limits [(section.14.3) (section.14.8)] +>> endobj +2712 0 obj << +/Names [(section.14.9) 706 0 R (section.15.1) 790 0 R (section.15.2) 794 0 R (section.15.3) 798 0 R (section.15.4) 802 0 R (section.15.5) 806 0 R] +/Limits [(section.14.9) (section.15.5)] +>> endobj +2713 0 obj << +/Names [(section.15.6) 810 0 R (section.16.1) 818 0 R (section.16.2) 822 0 R (section.16.3) 826 0 R (section.16.4) 830 0 R (section.16.5) 834 0 R] +/Limits [(section.15.6) (section.16.5)] +>> endobj +2714 0 obj << +/Names [(section.16.6) 854 0 R (section.17.1) 862 0 R (section.17.2) 866 0 R (section.17.3) 870 0 R (section.17.4) 874 0 R (section.17.5) 878 0 R] +/Limits [(section.16.6) (section.17.5)] +>> endobj +2715 0 obj << +/Names [(section.18.1) 886 0 R (section.18.2) 890 0 R (section.2.1) 58 0 R (section.2.2) 62 0 R (section.2.3) 66 0 R (section.3.1) 74 0 R] +/Limits [(section.18.1) (section.3.1)] +>> endobj +2716 0 obj << +/Names [(section.3.2) 102 0 R (section.3.3) 150 0 R (section.3.4) 186 0 R (section.3.5) 190 0 R (section.3.6) 194 0 R (section.3.7) 198 0 R] +/Limits [(section.3.2) (section.3.7)] +>> endobj +2717 0 obj << +/Names [(section.3.8) 214 0 R (section.4.1) 222 0 R (section.4.2) 226 0 R (section.4.3) 230 0 R (section.4.4) 234 0 R (section.4.5) 238 0 R] +/Limits [(section.3.8) (section.4.5)] +>> endobj +2718 0 obj << +/Names [(section.4.6) 242 0 R (section.5.1) 250 0 R (section.5.2) 254 0 R (section.5.3) 258 0 R (section.5.4) 262 0 R (section.5.5) 266 0 R] +/Limits [(section.4.6) (section.5.5)] +>> endobj +2719 0 obj << +/Names [(section.5.6) 290 0 R (section.6.1) 298 0 R (section.6.2) 302 0 R (section.6.3) 306 0 R (section.6.4) 310 0 R (section.6.5) 346 0 R] +/Limits [(section.5.6) (section.6.5)] +>> endobj +2720 0 obj << +/Names [(section.6.6) 374 0 R (section.6.7) 378 0 R (section.7.1) 386 0 R (section.7.2) 390 0 R (section.7.3) 394 0 R (section.7.4) 398 0 R] +/Limits [(section.6.6) (section.7.4)] +>> endobj +2721 0 obj << +/Names [(section.7.5) 402 0 R (section.7.6) 406 0 R (section.7.7) 410 0 R (section.8.1) 418 0 R (section.8.2) 422 0 R (section.8.3) 426 0 R] +/Limits [(section.7.5) (section.8.3)] +>> endobj +2722 0 obj << +/Names [(section.8.4) 430 0 R (section.8.5) 434 0 R (section.9.1) 442 0 R (section.9.2) 446 0 R (subsection.1.3.1) 18 0 R (subsection.1.3.2) 22 0 R] +/Limits [(section.8.4) (subsection.1.3.2)] +>> endobj +2723 0 obj << +/Names [(subsection.1.3.3) 26 0 R (subsection.1.3.4) 30 0 R (subsection.12.8.1) 554 0 R (subsection.12.8.2) 558 0 R (subsection.12.8.3) 562 0 R (subsection.12.8.4) 566 0 R] +/Limits [(subsection.1.3.3) (subsection.12.8.4)] +>> endobj +2724 0 obj << +/Names [(subsection.12.8.5) 570 0 R (subsection.12.8.6) 574 0 R (subsection.12.8.7) 578 0 R (subsection.13.1.1) 590 0 R (subsection.13.1.2) 594 0 R (subsection.13.1.3) 598 0 R] +/Limits [(subsection.12.8.5) (subsection.13.1.3)] +>> endobj +2725 0 obj << +/Names [(subsection.13.2.1) 606 0 R (subsection.13.2.2) 610 0 R (subsection.13.2.3) 614 0 R (subsection.13.2.4) 618 0 R (subsection.13.2.5) 622 0 R (subsection.13.2.6) 626 0 R] +/Limits [(subsection.13.2.1) (subsection.13.2.6)] +>> endobj +2726 0 obj << +/Names [(subsection.13.2.7) 630 0 R (subsection.13.2.8) 634 0 R (subsection.13.2.9) 638 0 R (subsection.14.4.1) 666 0 R (subsection.14.4.2) 670 0 R (subsection.14.4.3) 674 0 R] +/Limits [(subsection.13.2.7) (subsection.14.4.3)] +>> endobj +2727 0 obj << +/Names [(subsection.14.4.4) 678 0 R (subsection.14.4.5) 682 0 R (subsection.14.4.6) 686 0 R (subsection.14.9.1) 710 0 R (subsection.14.9.10) 746 0 R (subsection.14.9.11) 750 0 R] +/Limits [(subsection.14.4.4) (subsection.14.9.11)] +>> endobj +2728 0 obj << +/Names [(subsection.14.9.12) 754 0 R (subsection.14.9.13) 758 0 R (subsection.14.9.14) 762 0 R (subsection.14.9.15) 766 0 R (subsection.14.9.16) 770 0 R (subsection.14.9.17) 774 0 R] +/Limits [(subsection.14.9.12) (subsection.14.9.17)] +>> endobj +2729 0 obj << +/Names [(subsection.14.9.18) 778 0 R (subsection.14.9.2) 714 0 R (subsection.14.9.3) 718 0 R (subsection.14.9.4) 722 0 R (subsection.14.9.5) 726 0 R (subsection.14.9.6) 730 0 R] +/Limits [(subsection.14.9.18) (subsection.14.9.6)] +>> endobj +2730 0 obj << +/Names [(subsection.14.9.7) 734 0 R (subsection.14.9.8) 738 0 R (subsection.14.9.9) 742 0 R (subsection.16.5.1) 838 0 R (subsection.16.5.2) 842 0 R (subsection.16.5.3) 846 0 R] +/Limits [(subsection.14.9.7) (subsection.16.5.3)] +>> endobj +2731 0 obj << +/Names [(subsection.16.5.4) 850 0 R (subsection.3.1.1) 78 0 R (subsection.3.1.2) 98 0 R (subsection.3.2.1) 106 0 R (subsection.3.2.10) 142 0 R (subsection.3.2.11) 146 0 R] +/Limits [(subsection.16.5.4) (subsection.3.2.11)] +>> endobj +2732 0 obj << +/Names [(subsection.3.2.2) 110 0 R (subsection.3.2.3) 114 0 R (subsection.3.2.4) 118 0 R (subsection.3.2.5) 122 0 R (subsection.3.2.6) 126 0 R (subsection.3.2.7) 130 0 R] +/Limits [(subsection.3.2.2) (subsection.3.2.7)] +>> endobj +2733 0 obj << +/Names [(subsection.3.2.8) 134 0 R (subsection.3.2.9) 138 0 R (subsection.3.3.1) 158 0 R (subsection.3.3.2) 174 0 R (subsection.3.3.3) 178 0 R (subsection.3.3.4) 182 0 R] +/Limits [(subsection.3.2.8) (subsection.3.3.4)] +>> endobj +2734 0 obj << +/Names [(subsection.3.7.1) 202 0 R (subsection.3.7.2) 206 0 R (subsection.3.7.3) 210 0 R (subsection.5.5.1) 270 0 R (subsection.5.5.2) 274 0 R (subsection.6.4.1) 314 0 R] +/Limits [(subsection.3.7.1) (subsection.6.4.1)] +>> endobj +2735 0 obj << +/Names [(subsection.6.4.2) 318 0 R (subsection.6.4.3) 322 0 R (subsection.6.4.4) 326 0 R (subsection.6.4.5) 330 0 R (subsection.6.4.6) 334 0 R (subsection.6.4.7) 338 0 R] +/Limits [(subsection.6.4.2) (subsection.6.4.7)] +>> endobj +2736 0 obj << +/Names [(subsection.6.4.8) 342 0 R (subsection.6.5.1) 350 0 R (subsection.6.5.2) 354 0 R (subsection.6.5.3) 358 0 R (subsection.6.5.4) 362 0 R (subsection.6.5.5) 366 0 R] +/Limits [(subsection.6.4.8) (subsection.6.5.5)] +>> endobj +2737 0 obj << +/Names [(subsection.6.5.6) 370 0 R (table.12.1) 1183 0 R (table.12.2) 1184 0 R (table.12.3) 1185 0 R (table.12.4) 1186 0 R (table.12.5) 1187 0 R] +/Limits [(subsection.6.5.6) (table.12.5)] +>> endobj +2738 0 obj << +/Names [(table.12.6) 1188 0 R (table.12.7) 1189 0 R (table.12.8) 1190 0 R (table.13.1) 1191 0 R (table.14.1) 1192 0 R (table.3.1) 1177 0 R] +/Limits [(table.12.6) (table.3.1)] +>> endobj +2739 0 obj << +/Names [(table.3.2) 1178 0 R (table.3.3) 1179 0 R (table.3.4) 1180 0 R (table.3.5) 1181 0 R (table.3.6) 1182 0 R] +/Limits [(table.3.2) (table.3.6)] +>> endobj +2740 0 obj << +/Kids [2649 0 R 2650 0 R 2651 0 R 2652 0 R 2653 0 R 2654 0 R] +/Limits [(Doc-Start) (Item.37)] +>> endobj +2741 0 obj << +/Kids [2655 0 R 2656 0 R 2657 0 R 2658 0 R 2659 0 R 2660 0 R] +/Limits [(Item.38) (Item.7)] +>> endobj +2742 0 obj << +/Kids [2661 0 R 2662 0 R 2663 0 R 2664 0 R 2665 0 R 2666 0 R] +/Limits [(Item.70) (chapter.8)] +>> endobj +2743 0 obj << +/Kids [2667 0 R 2668 0 R 2669 0 R 2670 0 R 2671 0 R 2672 0 R] +/Limits [(chapter.9) (page.13)] +>> endobj +2744 0 obj << +/Kids [2673 0 R 2674 0 R 2675 0 R 2676 0 R 2677 0 R 2678 0 R] +/Limits [(page.130) (page.162)] +>> endobj +2745 0 obj << +/Kids [2679 0 R 2680 0 R 2681 0 R 2682 0 R 2683 0 R 2684 0 R] +/Limits [(page.163) (page.195)] +>> endobj +2746 0 obj << +/Kids [2685 0 R 2686 0 R 2687 0 R 2688 0 R 2689 0 R 2690 0 R] +/Limits [(page.196) (page.37)] +>> endobj +2747 0 obj << +/Kids [2691 0 R 2692 0 R 2693 0 R 2694 0 R 2695 0 R 2696 0 R] +/Limits [(page.38) (page.7)] +>> endobj +2748 0 obj << +/Kids [2697 0 R 2698 0 R 2699 0 R 2700 0 R 2701 0 R 2702 0 R] +/Limits [(page.70) (section*.13)] +>> endobj +2749 0 obj << +/Kids [2703 0 R 2704 0 R 2705 0 R 2706 0 R 2707 0 R 2708 0 R] +/Limits [(section*.14) (section.12.2)] +>> endobj +2750 0 obj << +/Kids [2709 0 R 2710 0 R 2711 0 R 2712 0 R 2713 0 R 2714 0 R] +/Limits [(section.12.3) (section.17.5)] +>> endobj +2751 0 obj << +/Kids [2715 0 R 2716 0 R 2717 0 R 2718 0 R 2719 0 R 2720 0 R] +/Limits [(section.18.1) (section.7.4)] +>> endobj +2752 0 obj << +/Kids [2721 0 R 2722 0 R 2723 0 R 2724 0 R 2725 0 R 2726 0 R] +/Limits [(section.7.5) (subsection.14.4.3)] +>> endobj +2753 0 obj << +/Kids [2727 0 R 2728 0 R 2729 0 R 2730 0 R 2731 0 R 2732 0 R] +/Limits [(subsection.14.4.4) (subsection.3.2.7)] +>> endobj +2754 0 obj << +/Kids [2733 0 R 2734 0 R 2735 0 R 2736 0 R 2737 0 R 2738 0 R] +/Limits [(subsection.3.2.8) (table.3.1)] +>> endobj +2755 0 obj << +/Kids [2739 0 R] +/Limits [(table.3.2) (table.3.6)] +>> endobj +2756 0 obj << +/Kids [2740 0 R 2741 0 R 2742 0 R 2743 0 R 2744 0 R 2745 0 R] +/Limits [(Doc-Start) (page.195)] +>> endobj +2757 0 obj << +/Kids [2746 0 R 2747 0 R 2748 0 R 2749 0 R 2750 0 R 2751 0 R] +/Limits [(page.196) (section.7.4)] +>> endobj +2758 0 obj << +/Kids [2752 0 R 2753 0 R 2754 0 R 2755 0 R] +/Limits [(section.7.5) (table.3.6)] +>> endobj +2759 0 obj << +/Kids [2756 0 R 2757 0 R 2758 0 R] +/Limits [(Doc-Start) (table.3.6)] +>> endobj +2760 0 obj << +/Dests 2759 0 R +>> endobj +2761 0 obj << +/Type /Catalog +/Pages 2647 0 R +/Outlines 2648 0 R +/Names 2760 0 R +/PageMode/UseOutlines/PageLabels<>1<>]>> +>> endobj +2762 0 obj << +/Author(Michael Van Canneyt)/Title(Free Pascal Language Reference Guide)/Subject(Free Pascal Reference guide)/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.10)/Keywords(Free Pascal, Language) +/CreationDate (D:20140314100609+01'00') +/ModDate (D:20140314100609+01'00') +/Trapped /False +/PTEX.Fullbanner (This is pdfTeX, Version 3.1415926-1.40.10-2.2 (TeX Live 2009/Debian) kpathsea version 5.0.0) +>> endobj +xref +0 2763 +0000000000 65535 f +0000000015 00000 n +0000077576 00000 n +0000814916 00000 n +0000000060 00000 n +0000000091 00000 n +0000077636 00000 n +0000814846 00000 n +0000000138 00000 n +0000000163 00000 n +0000079955 00000 n +0000814762 00000 n +0000000210 00000 n +0000000237 00000 n +0000082181 00000 n +0000814639 00000 n +0000000285 00000 n +0000000318 00000 n +0000082242 00000 n +0000814565 00000 n +0000000371 00000 n +0000000417 00000 n +0000084598 00000 n +0000814478 00000 n +0000000470 00000 n +0000000515 00000 n +0000084659 00000 n +0000814391 00000 n +0000000568 00000 n +0000000615 00000 n +0000084720 00000 n +0000814317 00000 n +0000000668 00000 n +0000000696 00000 n +0000087615 00000 n +0000814231 00000 n +0000000744 00000 n +0000000774 00000 n +0000090239 00000 n +0000814145 00000 n +0000000822 00000 n +0000000856 00000 n +0000094623 00000 n +0000814059 00000 n +0000000904 00000 n +0000000930 00000 n +0000098275 00000 n +0000813973 00000 n +0000000978 00000 n +0000001003 00000 n +0000098336 00000 n +0000813900 00000 n +0000001051 00000 n +0000001087 00000 n +0000102387 00000 n +0000813775 00000 n +0000001133 00000 n +0000001161 00000 n +0000102448 00000 n +0000813701 00000 n +0000001209 00000 n +0000001246 00000 n +0000106043 00000 n +0000813614 00000 n +0000001294 00000 n +0000001328 00000 n +0000108894 00000 n +0000813540 00000 n +0000001376 00000 n +0000001411 00000 n +0000111709 00000 n +0000813412 00000 n +0000001457 00000 n +0000001481 00000 n +0000111770 00000 n +0000813300 00000 n +0000001529 00000 n +0000001558 00000 n +0000114395 00000 n +0000813189 00000 n +0000001611 00000 n +0000001643 00000 n +0000114645 00000 n +0000813115 00000 n +0000001690 00000 n +0000001717 00000 n +0000117348 00000 n +0000813028 00000 n +0000001764 00000 n +0000001796 00000 n +0000121090 00000 n +0000812941 00000 n +0000001843 00000 n +0000001879 00000 n +0000123695 00000 n +0000812867 00000 n +0000001927 00000 n +0000001960 00000 n +0000127038 00000 n +0000812792 00000 n +0000002013 00000 n +0000002043 00000 n +0000127163 00000 n +0000812661 00000 n +0000002092 00000 n +0000002127 00000 n +0000127225 00000 n +0000812582 00000 n +0000002181 00000 n +0000002217 00000 n +0000129946 00000 n +0000812489 00000 n +0000002271 00000 n +0000002299 00000 n +0000130008 00000 n +0000812396 00000 n +0000002353 00000 n +0000002394 00000 n +0000130070 00000 n +0000812303 00000 n +0000002448 00000 n +0000002475 00000 n +0000130132 00000 n +0000812210 00000 n +0000002529 00000 n +0000002562 00000 n +0000133403 00000 n +0000812117 00000 n +0000002616 00000 n +0000002647 00000 n +0000139114 00000 n +0000812024 00000 n +0000002701 00000 n +0000002735 00000 n +0000139176 00000 n +0000811931 00000 n +0000002789 00000 n +0000002820 00000 n +0000142142 00000 n +0000811838 00000 n +0000002874 00000 n +0000002910 00000 n +0000142204 00000 n +0000811745 00000 n +0000002965 00000 n +0000003016 00000 n +0000145273 00000 n +0000811666 00000 n +0000003071 00000 n +0000003103 00000 n +0000145399 00000 n +0000811535 00000 n +0000003152 00000 n +0000003188 00000 n +0000149374 00000 n +0000811456 00000 n +0000003237 00000 n +0000003280 00000 n +0000152747 00000 n +0000811324 00000 n +0000003334 00000 n +0000003360 00000 n +0000152809 00000 n +0000811245 00000 n +0000003409 00000 n +0000003442 00000 n +0000154557 00000 n +0000811152 00000 n +0000003491 00000 n +0000003525 00000 n +0000161586 00000 n +0000811073 00000 n +0000003574 00000 n +0000003624 00000 n +0000161648 00000 n +0000810980 00000 n +0000003678 00000 n +0000003710 00000 n +0000170402 00000 n +0000810887 00000 n +0000003764 00000 n +0000003793 00000 n +0000173339 00000 n +0000810808 00000 n +0000003847 00000 n +0000003877 00000 n +0000173401 00000 n +0000810716 00000 n +0000003926 00000 n +0000003954 00000 n +0000177927 00000 n +0000810624 00000 n +0000004003 00000 n +0000004048 00000 n +0000181625 00000 n +0000810532 00000 n +0000004097 00000 n +0000004133 00000 n +0000186912 00000 n +0000810401 00000 n +0000004182 00000 n +0000004215 00000 n +0000186974 00000 n +0000810322 00000 n +0000004269 00000 n +0000004299 00000 n +0000189290 00000 n +0000810229 00000 n +0000004353 00000 n +0000004412 00000 n +0000191819 00000 n +0000810150 00000 n +0000004466 00000 n +0000004509 00000 n +0000191879 00000 n +0000810072 00000 n +0000004558 00000 n +0000004590 00000 n +0000197752 00000 n +0000809940 00000 n +0000004637 00000 n +0000004666 00000 n +0000197814 00000 n +0000809861 00000 n +0000004715 00000 n +0000004745 00000 n +0000197876 00000 n +0000809768 00000 n +0000004794 00000 n +0000004825 00000 n +0000203969 00000 n +0000809675 00000 n +0000004874 00000 n +0000004899 00000 n +0000204031 00000 n +0000809582 00000 n +0000004948 00000 n +0000004989 00000 n +0000207364 00000 n +0000809489 00000 n +0000005038 00000 n +0000005074 00000 n +0000207426 00000 n +0000809410 00000 n +0000005123 00000 n +0000005153 00000 n +0000216182 00000 n +0000809277 00000 n +0000005200 00000 n +0000005227 00000 n +0000216244 00000 n +0000809198 00000 n +0000005276 00000 n +0000005307 00000 n +0000218642 00000 n +0000809105 00000 n +0000005356 00000 n +0000005382 00000 n +0000220923 00000 n +0000809012 00000 n +0000005431 00000 n +0000005464 00000 n +0000224165 00000 n +0000808919 00000 n +0000005513 00000 n +0000005562 00000 n +0000227480 00000 n +0000808787 00000 n +0000005611 00000 n +0000005638 00000 n +0000227542 00000 n +0000808708 00000 n +0000005692 00000 n +0000005723 00000 n +0000229991 00000 n +0000808590 00000 n +0000005777 00000 n +0000005814 00000 n +0000230053 00000 n +0000808511 00000 n +0000005863 00000 n +0000005897 00000 n +0000232342 00000 n +0000808418 00000 n +0000005946 00000 n +0000005981 00000 n +0000234865 00000 n +0000808339 00000 n +0000006030 00000 n +0000006066 00000 n +0000237005 00000 n +0000808260 00000 n +0000006115 00000 n +0000006145 00000 n +0000239445 00000 n +0000808127 00000 n +0000006192 00000 n +0000006219 00000 n +0000239507 00000 n +0000808048 00000 n +0000006268 00000 n +0000006305 00000 n +0000252541 00000 n +0000807955 00000 n +0000006354 00000 n +0000006393 00000 n +0000254963 00000 n +0000807862 00000 n +0000006442 00000 n +0000006479 00000 n +0000258229 00000 n +0000807730 00000 n +0000006528 00000 n +0000006555 00000 n +0000258291 00000 n +0000807651 00000 n +0000006609 00000 n +0000006640 00000 n +0000258353 00000 n +0000807558 00000 n +0000006694 00000 n +0000006724 00000 n +0000258413 00000 n +0000807465 00000 n +0000006778 00000 n +0000006813 00000 n +0000260973 00000 n +0000807372 00000 n +0000006867 00000 n +0000006900 00000 n +0000263017 00000 n +0000807279 00000 n +0000006954 00000 n +0000007008 00000 n +0000264429 00000 n +0000807186 00000 n +0000007062 00000 n +0000007102 00000 n +0000268022 00000 n +0000807093 00000 n +0000007156 00000 n +0000007191 00000 n +0000272452 00000 n +0000807014 00000 n +0000007245 00000 n +0000007280 00000 n +0000277000 00000 n +0000806882 00000 n +0000007329 00000 n +0000007359 00000 n +0000277062 00000 n +0000806803 00000 n +0000007413 00000 n +0000007443 00000 n +0000281186 00000 n +0000806710 00000 n +0000007497 00000 n +0000007535 00000 n +0000283189 00000 n +0000806617 00000 n +0000007589 00000 n +0000007625 00000 n +0000285900 00000 n +0000806524 00000 n +0000007679 00000 n +0000007717 00000 n +0000285962 00000 n +0000806431 00000 n +0000007771 00000 n +0000007810 00000 n +0000286212 00000 n +0000806352 00000 n +0000007864 00000 n +0000007905 00000 n +0000289739 00000 n +0000806259 00000 n +0000007954 00000 n +0000007990 00000 n +0000289801 00000 n +0000806180 00000 n +0000008039 00000 n +0000008096 00000 n +0000293945 00000 n +0000806047 00000 n +0000008143 00000 n +0000008173 00000 n +0000294007 00000 n +0000805968 00000 n +0000008222 00000 n +0000008252 00000 n +0000296110 00000 n +0000805875 00000 n +0000008301 00000 n +0000008353 00000 n +0000297575 00000 n +0000805782 00000 n +0000008402 00000 n +0000008447 00000 n +0000299816 00000 n +0000805689 00000 n +0000008496 00000 n +0000008536 00000 n +0000304149 00000 n +0000805596 00000 n +0000008585 00000 n +0000008623 00000 n +0000304211 00000 n +0000805503 00000 n +0000008672 00000 n +0000008718 00000 n +0000304273 00000 n +0000805424 00000 n +0000008767 00000 n +0000008805 00000 n +0000308477 00000 n +0000805291 00000 n +0000008852 00000 n +0000008880 00000 n +0000308539 00000 n +0000805212 00000 n +0000008929 00000 n +0000008961 00000 n +0000308727 00000 n +0000805119 00000 n +0000009010 00000 n +0000009054 00000 n +0000314170 00000 n +0000805026 00000 n +0000009103 00000 n +0000009151 00000 n +0000315922 00000 n +0000804933 00000 n +0000009200 00000 n +0000009251 00000 n +0000319486 00000 n +0000804854 00000 n +0000009300 00000 n +0000009338 00000 n +0000324482 00000 n +0000804721 00000 n +0000009385 00000 n +0000009421 00000 n +0000324544 00000 n +0000804642 00000 n +0000009470 00000 n +0000009500 00000 n +0000329957 00000 n +0000804563 00000 n +0000009549 00000 n +0000009596 00000 n +0000334769 00000 n +0000804430 00000 n +0000009644 00000 n +0000009688 00000 n +0000334831 00000 n +0000804351 00000 n +0000009738 00000 n +0000009768 00000 n +0000336916 00000 n +0000804258 00000 n +0000009818 00000 n +0000009867 00000 n +0000338693 00000 n +0000804165 00000 n +0000009917 00000 n +0000009967 00000 n +0000340598 00000 n +0000804072 00000 n +0000010017 00000 n +0000010048 00000 n +0000340660 00000 n +0000803993 00000 n +0000010098 00000 n +0000010123 00000 n +0000345193 00000 n +0000803859 00000 n +0000010171 00000 n +0000010215 00000 n +0000345255 00000 n +0000803780 00000 n +0000010265 00000 n +0000010297 00000 n +0000345317 00000 n +0000803687 00000 n +0000010347 00000 n +0000010402 00000 n +0000353583 00000 n +0000803594 00000 n +0000010452 00000 n +0000010490 00000 n +0000356721 00000 n +0000803501 00000 n +0000010540 00000 n +0000010598 00000 n +0000360690 00000 n +0000803408 00000 n +0000010648 00000 n +0000010688 00000 n +0000363486 00000 n +0000803315 00000 n +0000010738 00000 n +0000010768 00000 n +0000366687 00000 n +0000803222 00000 n +0000010818 00000 n +0000010864 00000 n +0000369535 00000 n +0000803129 00000 n +0000010914 00000 n +0000010943 00000 n +0000369597 00000 n +0000803036 00000 n +0000010993 00000 n +0000011024 00000 n +0000369785 00000 n +0000802957 00000 n +0000011075 00000 n +0000011129 00000 n +0000373569 00000 n +0000802824 00000 n +0000011177 00000 n +0000011208 00000 n +0000376303 00000 n +0000802745 00000 n +0000011258 00000 n +0000011295 00000 n +0000380236 00000 n +0000802652 00000 n +0000011345 00000 n +0000011379 00000 n +0000385545 00000 n +0000802559 00000 n +0000011429 00000 n +0000011465 00000 n +0000387957 00000 n +0000802466 00000 n +0000011515 00000 n +0000011550 00000 n +0000388019 00000 n +0000802373 00000 n +0000011600 00000 n +0000011638 00000 n +0000389726 00000 n +0000802280 00000 n +0000011688 00000 n +0000011727 00000 n +0000389788 00000 n +0000802187 00000 n +0000011777 00000 n +0000011811 00000 n +0000392288 00000 n +0000802069 00000 n +0000011861 00000 n +0000011890 00000 n +0000394915 00000 n +0000801990 00000 n +0000011945 00000 n +0000011985 00000 n +0000395105 00000 n +0000801897 00000 n +0000012040 00000 n +0000012077 00000 n +0000397583 00000 n +0000801804 00000 n +0000012132 00000 n +0000012169 00000 n +0000397709 00000 n +0000801711 00000 n +0000012224 00000 n +0000012260 00000 n +0000399960 00000 n +0000801618 00000 n +0000012315 00000 n +0000012348 00000 n +0000401771 00000 n +0000801525 00000 n +0000012403 00000 n +0000012443 00000 n +0000404522 00000 n +0000801446 00000 n +0000012498 00000 n +0000012533 00000 n +0000409971 00000 n +0000801313 00000 n +0000012581 00000 n +0000012611 00000 n +0000410033 00000 n +0000801195 00000 n +0000012661 00000 n +0000012698 00000 n +0000410095 00000 n +0000801116 00000 n +0000012753 00000 n +0000012784 00000 n +0000413167 00000 n +0000801023 00000 n +0000012839 00000 n +0000012879 00000 n +0000416183 00000 n +0000800944 00000 n +0000012934 00000 n +0000012969 00000 n +0000419081 00000 n +0000800812 00000 n +0000013019 00000 n +0000013060 00000 n +0000419143 00000 n +0000800733 00000 n +0000013115 00000 n +0000013154 00000 n +0000422829 00000 n +0000800640 00000 n +0000013209 00000 n +0000013247 00000 n +0000424550 00000 n +0000800547 00000 n +0000013302 00000 n +0000013350 00000 n +0000429925 00000 n +0000800454 00000 n +0000013405 00000 n +0000013457 00000 n +0000433297 00000 n +0000800361 00000 n +0000013512 00000 n +0000013557 00000 n +0000445352 00000 n +0000800268 00000 n +0000013612 00000 n +0000013659 00000 n +0000445414 00000 n +0000800175 00000 n +0000013714 00000 n +0000013757 00000 n +0000448154 00000 n +0000800082 00000 n +0000013812 00000 n +0000013850 00000 n +0000453448 00000 n +0000800003 00000 n +0000013905 00000 n +0000013945 00000 n +0000453508 00000 n +0000799924 00000 n +0000013995 00000 n +0000014035 00000 n +0000456573 00000 n +0000799790 00000 n +0000014083 00000 n +0000014133 00000 n +0000456635 00000 n +0000799711 00000 n +0000014183 00000 n +0000014224 00000 n +0000459460 00000 n +0000799618 00000 n +0000014274 00000 n +0000014314 00000 n +0000459522 00000 n +0000799525 00000 n +0000014364 00000 n +0000014400 00000 n +0000462676 00000 n +0000799393 00000 n +0000014450 00000 n +0000014485 00000 n +0000462738 00000 n +0000799314 00000 n +0000014540 00000 n +0000014576 00000 n +0000466171 00000 n +0000799221 00000 n +0000014631 00000 n +0000014670 00000 n +0000469282 00000 n +0000799128 00000 n +0000014725 00000 n +0000014759 00000 n +0000473194 00000 n +0000799035 00000 n +0000014814 00000 n +0000014853 00000 n +0000476102 00000 n +0000798942 00000 n +0000014908 00000 n +0000014949 00000 n +0000478131 00000 n +0000798863 00000 n +0000015004 00000 n +0000015038 00000 n +0000481832 00000 n +0000798770 00000 n +0000015088 00000 n +0000015128 00000 n +0000483829 00000 n +0000798677 00000 n +0000015178 00000 n +0000015224 00000 n +0000486644 00000 n +0000798584 00000 n +0000015274 00000 n +0000015312 00000 n +0000490561 00000 n +0000798491 00000 n +0000015362 00000 n +0000015401 00000 n +0000490623 00000 n +0000798358 00000 n +0000015451 00000 n +0000015480 00000 n +0000493147 00000 n +0000798279 00000 n +0000015535 00000 n +0000015560 00000 n +0000493209 00000 n +0000798186 00000 n +0000015615 00000 n +0000015640 00000 n +0000496804 00000 n +0000798093 00000 n +0000015695 00000 n +0000015721 00000 n +0000496866 00000 n +0000798000 00000 n +0000015776 00000 n +0000015802 00000 n +0000497117 00000 n +0000797907 00000 n +0000015857 00000 n +0000015886 00000 n +0000499620 00000 n +0000797814 00000 n +0000015941 00000 n +0000015968 00000 n +0000499680 00000 n +0000797721 00000 n +0000016023 00000 n +0000016048 00000 n +0000499742 00000 n +0000797628 00000 n +0000016103 00000 n +0000016131 00000 n +0000499804 00000 n +0000797535 00000 n +0000016186 00000 n +0000016218 00000 n +0000501304 00000 n +0000797442 00000 n +0000016274 00000 n +0000016302 00000 n +0000504077 00000 n +0000797349 00000 n +0000016358 00000 n +0000016384 00000 n +0000504139 00000 n +0000797256 00000 n +0000016440 00000 n +0000016466 00000 n +0000506874 00000 n +0000797163 00000 n +0000016522 00000 n +0000016550 00000 n +0000506936 00000 n +0000797070 00000 n +0000016606 00000 n +0000016634 00000 n +0000506998 00000 n +0000796977 00000 n +0000016690 00000 n +0000016723 00000 n +0000507060 00000 n +0000796884 00000 n +0000016779 00000 n +0000016808 00000 n +0000507121 00000 n +0000796791 00000 n +0000016864 00000 n +0000016891 00000 n +0000507183 00000 n +0000796712 00000 n +0000016947 00000 n +0000016974 00000 n +0000508644 00000 n +0000796633 00000 n +0000017025 00000 n +0000017079 00000 n +0000511547 00000 n +0000796500 00000 n +0000017127 00000 n +0000017167 00000 n +0000511609 00000 n +0000796421 00000 n +0000017217 00000 n +0000017249 00000 n +0000511671 00000 n +0000796328 00000 n +0000017299 00000 n +0000017340 00000 n +0000514637 00000 n +0000796235 00000 n +0000017390 00000 n +0000017430 00000 n +0000521352 00000 n +0000796142 00000 n +0000017480 00000 n +0000017520 00000 n +0000523817 00000 n +0000796049 00000 n +0000017570 00000 n +0000017609 00000 n +0000525580 00000 n +0000795970 00000 n +0000017659 00000 n +0000017690 00000 n +0000529668 00000 n +0000795837 00000 n +0000017738 00000 n +0000017781 00000 n +0000529730 00000 n +0000795758 00000 n +0000017831 00000 n +0000017859 00000 n +0000534024 00000 n +0000795665 00000 n +0000017909 00000 n +0000017934 00000 n +0000539304 00000 n +0000795572 00000 n +0000017984 00000 n +0000018021 00000 n +0000542009 00000 n +0000795479 00000 n +0000018071 00000 n +0000018097 00000 n +0000545880 00000 n +0000795347 00000 n +0000018147 00000 n +0000018172 00000 n +0000545941 00000 n +0000795268 00000 n +0000018227 00000 n +0000018258 00000 n +0000548111 00000 n +0000795175 00000 n +0000018313 00000 n +0000018345 00000 n +0000548362 00000 n +0000795082 00000 n +0000018400 00000 n +0000018431 00000 n +0000548676 00000 n +0000795003 00000 n +0000018486 00000 n +0000018516 00000 n +0000551484 00000 n +0000794924 00000 n +0000018566 00000 n +0000018595 00000 n +0000555299 00000 n +0000794791 00000 n +0000018643 00000 n +0000018673 00000 n +0000555361 00000 n +0000794712 00000 n +0000018723 00000 n +0000018762 00000 n +0000562011 00000 n +0000794619 00000 n +0000018812 00000 n +0000018858 00000 n +0000564475 00000 n +0000794526 00000 n +0000018908 00000 n +0000018955 00000 n +0000566994 00000 n +0000794433 00000 n +0000019005 00000 n +0000019051 00000 n +0000567056 00000 n +0000794354 00000 n +0000019101 00000 n +0000019138 00000 n +0000569035 00000 n +0000794235 00000 n +0000019186 00000 n +0000019221 00000 n +0000569097 00000 n +0000794156 00000 n +0000019271 00000 n +0000019312 00000 n +0000569159 00000 n +0000794077 00000 n +0000019362 00000 n +0000020038 00000 n +0000019798 00000 n +0000019416 00000 n +0000019917 00000 n +0000019977 00000 n +0000788132 00000 n +0000787783 00000 n +0000788675 00000 n +0000021439 00000 n +0000021590 00000 n +0000021744 00000 n +0000021898 00000 n +0000022051 00000 n +0000022208 00000 n +0000022366 00000 n +0000022525 00000 n +0000022684 00000 n +0000022838 00000 n +0000022992 00000 n +0000023146 00000 n +0000023299 00000 n +0000023453 00000 n +0000023604 00000 n +0000023758 00000 n +0000023912 00000 n +0000024066 00000 n +0000024216 00000 n +0000024370 00000 n +0000024529 00000 n +0000024680 00000 n +0000024833 00000 n +0000024986 00000 n +0000025139 00000 n +0000025296 00000 n +0000025449 00000 n +0000025608 00000 n +0000025767 00000 n +0000027753 00000 n +0000025985 00000 n +0000021076 00000 n +0000020123 00000 n +0000787956 00000 n +0000025924 00000 n +0000027912 00000 n +0000028071 00000 n +0000028230 00000 n +0000028389 00000 n +0000028548 00000 n +0000028707 00000 n +0000028867 00000 n +0000029027 00000 n +0000029179 00000 n +0000029332 00000 n +0000029491 00000 n +0000029645 00000 n +0000029799 00000 n +0000029953 00000 n +0000030112 00000 n +0000030271 00000 n +0000030430 00000 n +0000030584 00000 n +0000030736 00000 n +0000030890 00000 n +0000031044 00000 n +0000031203 00000 n +0000031362 00000 n +0000031520 00000 n +0000031674 00000 n +0000031825 00000 n +0000031979 00000 n +0000032133 00000 n +0000032287 00000 n +0000032440 00000 n +0000032594 00000 n +0000032748 00000 n +0000032899 00000 n +0000033053 00000 n +0000033205 00000 n +0000033358 00000 n +0000033511 00000 n +0000033665 00000 n +0000035692 00000 n +0000033881 00000 n +0000027310 00000 n +0000026070 00000 n +0000033822 00000 n +0000788489 00000 n +0000035850 00000 n +0000036003 00000 n +0000036156 00000 n +0000036310 00000 n +0000036463 00000 n +0000036614 00000 n +0000036767 00000 n +0000036920 00000 n +0000037074 00000 n +0000037228 00000 n +0000037387 00000 n +0000037546 00000 n +0000037704 00000 n +0000037863 00000 n +0000038020 00000 n +0000038178 00000 n +0000038337 00000 n +0000038496 00000 n +0000038650 00000 n +0000038809 00000 n +0000038968 00000 n +0000039128 00000 n +0000039287 00000 n +0000039446 00000 n +0000039604 00000 n +0000039759 00000 n +0000039914 00000 n +0000040066 00000 n +0000040221 00000 n +0000040376 00000 n +0000040529 00000 n +0000040684 00000 n +0000040839 00000 n +0000040993 00000 n +0000041148 00000 n +0000041300 00000 n +0000041455 00000 n +0000043558 00000 n +0000041671 00000 n +0000035237 00000 n +0000033979 00000 n +0000041609 00000 n +0000043713 00000 n +0000043868 00000 n +0000044022 00000 n +0000044174 00000 n +0000044329 00000 n +0000044483 00000 n +0000044635 00000 n +0000044791 00000 n +0000044947 00000 n +0000045103 00000 n +0000045259 00000 n +0000045415 00000 n +0000045568 00000 n +0000045724 00000 n +0000045880 00000 n +0000046036 00000 n +0000046192 00000 n +0000046348 00000 n +0000046503 00000 n +0000046659 00000 n +0000046815 00000 n +0000046971 00000 n +0000047128 00000 n +0000047281 00000 n +0000047437 00000 n +0000047592 00000 n +0000047748 00000 n +0000047904 00000 n +0000048060 00000 n +0000048216 00000 n +0000048372 00000 n +0000048527 00000 n +0000048686 00000 n +0000048846 00000 n +0000049007 00000 n +0000049167 00000 n +0000051304 00000 n +0000049388 00000 n +0000043091 00000 n +0000041770 00000 n +0000049327 00000 n +0000787434 00000 n +0000051465 00000 n +0000051625 00000 n +0000051778 00000 n +0000051934 00000 n +0000052095 00000 n +0000052254 00000 n +0000052414 00000 n +0000052569 00000 n +0000052730 00000 n +0000052890 00000 n +0000053051 00000 n +0000053212 00000 n +0000053373 00000 n +0000053534 00000 n +0000053693 00000 n +0000053852 00000 n +0000054013 00000 n +0000054169 00000 n +0000054320 00000 n +0000054476 00000 n +0000054629 00000 n +0000054784 00000 n +0000054940 00000 n +0000055101 00000 n +0000055262 00000 n +0000055421 00000 n +0000055582 00000 n +0000055743 00000 n +0000055903 00000 n +0000056057 00000 n +0000056213 00000 n +0000056369 00000 n +0000056524 00000 n +0000056679 00000 n +0000056839 00000 n +0000056999 00000 n +0000057160 00000 n +0000057321 00000 n +0000059343 00000 n +0000057542 00000 n +0000050819 00000 n +0000049501 00000 n +0000057480 00000 n +0000059503 00000 n +0000059663 00000 n +0000059824 00000 n +0000059985 00000 n +0000060146 00000 n +0000060308 00000 n +0000060470 00000 n +0000060632 00000 n +0000060792 00000 n +0000060953 00000 n +0000061115 00000 n +0000061277 00000 n +0000061439 00000 n +0000061596 00000 n +0000061748 00000 n +0000061903 00000 n +0000062059 00000 n +0000062215 00000 n +0000062371 00000 n +0000062527 00000 n +0000062683 00000 n +0000062835 00000 n +0000062991 00000 n +0000063147 00000 n +0000063303 00000 n +0000063459 00000 n +0000063615 00000 n +0000063776 00000 n +0000063936 00000 n +0000064096 00000 n +0000064255 00000 n +0000064411 00000 n +0000064564 00000 n +0000064720 00000 n +0000064875 00000 n +0000065030 00000 n +0000065185 00000 n +0000066046 00000 n +0000065401 00000 n +0000058866 00000 n +0000057655 00000 n +0000065340 00000 n +0000788796 00000 n +0000066199 00000 n +0000066354 00000 n +0000066572 00000 n +0000065884 00000 n +0000065500 00000 n +0000066510 00000 n +0000067663 00000 n +0000067816 00000 n +0000067969 00000 n +0000068122 00000 n +0000068275 00000 n +0000068426 00000 n +0000068578 00000 n +0000068731 00000 n +0000068885 00000 n +0000069039 00000 n +0000069193 00000 n +0000069346 00000 n +0000069499 00000 n +0000069653 00000 n +0000069807 00000 n +0000069961 00000 n +0000070239 00000 n +0000067384 00000 n +0000066671 00000 n +0000070115 00000 n +0000070176 00000 n +0000114706 00000 n +0000117284 00000 n +0000117409 00000 n +0000127099 00000 n +0000145209 00000 n +0000145335 00000 n +0000373631 00000 n +0000394977 00000 n +0000395041 00000 n +0000397520 00000 n +0000397645 00000 n +0000400022 00000 n +0000404270 00000 n +0000404584 00000 n +0000413103 00000 n +0000508706 00000 n +0000073582 00000 n +0000073208 00000 n +0000070339 00000 n +0000073331 00000 n +0000073393 00000 n +0000787609 00000 n +0000073456 00000 n +0000073519 00000 n +0000787113 00000 n +0000075260 00000 n +0000075013 00000 n +0000073735 00000 n +0000075136 00000 n +0000075197 00000 n +0000786967 00000 n +0000077696 00000 n +0000077391 00000 n +0000075387 00000 n +0000077514 00000 n +0000080016 00000 n +0000079771 00000 n +0000077822 00000 n +0000079894 00000 n +0000788921 00000 n +0000082303 00000 n +0000081996 00000 n +0000080129 00000 n +0000082119 00000 n +0000788308 00000 n +0000087243 00000 n +0000087398 00000 n +0000084781 00000 n +0000084414 00000 n +0000082444 00000 n +0000084537 00000 n +0000087676 00000 n +0000087090 00000 n +0000084922 00000 n +0000087553 00000 n +0000090300 00000 n +0000090055 00000 n +0000087829 00000 n +0000090178 00000 n +0000094935 00000 n +0000094438 00000 n +0000090453 00000 n +0000094561 00000 n +0000094684 00000 n +0000094746 00000 n +0000094809 00000 n +0000094872 00000 n +0000098397 00000 n +0000098091 00000 n +0000095088 00000 n +0000098214 00000 n +0000789046 00000 n +0000099633 00000 n +0000099448 00000 n +0000098550 00000 n +0000099571 00000 n +0000101710 00000 n +0000101864 00000 n +0000102019 00000 n +0000102173 00000 n +0000102509 00000 n +0000101539 00000 n +0000099733 00000 n +0000102326 00000 n +0000105671 00000 n +0000105826 00000 n +0000106104 00000 n +0000105518 00000 n +0000102663 00000 n +0000105981 00000 n +0000108662 00000 n +0000108955 00000 n +0000108518 00000 n +0000106271 00000 n +0000108833 00000 n +0000111336 00000 n +0000111492 00000 n +0000111830 00000 n +0000111183 00000 n +0000109081 00000 n +0000111647 00000 n +0000114031 00000 n +0000114183 00000 n +0000114770 00000 n +0000113878 00000 n +0000111970 00000 n +0000114334 00000 n +0000114456 00000 n +0000114519 00000 n +0000114582 00000 n +0000789171 00000 n +0000117473 00000 n +0000117099 00000 n +0000114923 00000 n +0000117222 00000 n +0000120721 00000 n +0000120875 00000 n +0000121151 00000 n +0000120568 00000 n +0000117586 00000 n +0000121029 00000 n +0000123336 00000 n +0000123756 00000 n +0000123192 00000 n +0000121304 00000 n +0000123507 00000 n +0000123569 00000 n +0000123632 00000 n +0000126653 00000 n +0000126806 00000 n +0000127287 00000 n +0000126500 00000 n +0000123923 00000 n +0000126977 00000 n +0000130194 00000 n +0000129761 00000 n +0000127414 00000 n +0000129884 00000 n +0000133465 00000 n +0000133093 00000 n +0000130347 00000 n +0000133216 00000 n +0000133277 00000 n +0000133340 00000 n +0000789296 00000 n +0000136182 00000 n +0000135997 00000 n +0000133592 00000 n +0000136120 00000 n +0000139238 00000 n +0000138804 00000 n +0000136296 00000 n +0000138927 00000 n +0000138988 00000 n +0000139051 00000 n +0000141902 00000 n +0000142266 00000 n +0000141758 00000 n +0000139379 00000 n +0000142080 00000 n +0000144665 00000 n +0000144842 00000 n +0000144995 00000 n +0000145461 00000 n +0000144503 00000 n +0000142394 00000 n +0000145148 00000 n +0000149142 00000 n +0000149625 00000 n +0000148998 00000 n +0000145588 00000 n +0000149312 00000 n +0000149436 00000 n +0000149499 00000 n +0000149562 00000 n +0000152871 00000 n +0000152563 00000 n +0000149778 00000 n +0000152686 00000 n +0000786678 00000 n +0000786823 00000 n +0000789421 00000 n +0000154619 00000 n +0000154372 00000 n +0000153064 00000 n +0000154495 00000 n +0000156447 00000 n +0000156263 00000 n +0000154732 00000 n +0000156386 00000 n +0000158016 00000 n +0000157831 00000 n +0000156547 00000 n +0000157954 00000 n +0000161710 00000 n +0000161402 00000 n +0000158116 00000 n +0000161525 00000 n +0000164304 00000 n +0000164584 00000 n +0000164160 00000 n +0000161863 00000 n +0000164458 00000 n +0000164520 00000 n +0000166109 00000 n +0000165925 00000 n +0000164765 00000 n +0000166048 00000 n +0000789546 00000 n +0000167631 00000 n +0000167446 00000 n +0000166209 00000 n +0000167569 00000 n +0000170023 00000 n +0000170182 00000 n +0000170464 00000 n +0000169870 00000 n +0000167745 00000 n +0000170341 00000 n +0000173463 00000 n +0000173154 00000 n +0000170631 00000 n +0000173277 00000 n +0000175681 00000 n +0000175497 00000 n +0000173616 00000 n +0000175620 00000 n +0000177989 00000 n +0000177742 00000 n +0000175808 00000 n +0000177865 00000 n +0000181256 00000 n +0000181410 00000 n +0000181939 00000 n +0000181103 00000 n +0000178116 00000 n +0000181564 00000 n +0000181687 00000 n +0000181750 00000 n +0000181813 00000 n +0000181876 00000 n +0000789671 00000 n +0000183621 00000 n +0000183436 00000 n +0000182092 00000 n +0000183559 00000 n +0000185095 00000 n +0000184911 00000 n +0000183734 00000 n +0000185034 00000 n +0000187036 00000 n +0000186727 00000 n +0000185195 00000 n +0000186850 00000 n +0000189058 00000 n +0000189352 00000 n +0000188914 00000 n +0000187176 00000 n +0000189229 00000 n +0000191941 00000 n +0000191634 00000 n +0000189466 00000 n +0000191757 00000 n +0000194143 00000 n +0000193896 00000 n +0000192094 00000 n +0000194019 00000 n +0000194080 00000 n +0000789796 00000 n +0000195055 00000 n +0000194744 00000 n +0000194243 00000 n +0000194867 00000 n +0000194929 00000 n +0000194992 00000 n +0000197379 00000 n +0000197535 00000 n +0000197938 00000 n +0000197226 00000 n +0000195155 00000 n +0000197691 00000 n +0000201466 00000 n +0000200843 00000 n +0000198078 00000 n +0000200966 00000 n +0000201028 00000 n +0000201090 00000 n +0000201153 00000 n +0000201216 00000 n +0000201279 00000 n +0000201341 00000 n +0000201403 00000 n +0000204093 00000 n +0000203596 00000 n +0000201606 00000 n +0000203719 00000 n +0000203780 00000 n +0000203843 00000 n +0000203906 00000 n +0000207132 00000 n +0000207488 00000 n +0000206988 00000 n +0000204220 00000 n +0000207302 00000 n +0000210569 00000 n +0000210385 00000 n +0000207641 00000 n +0000210508 00000 n +0000789921 00000 n +0000211933 00000 n +0000211748 00000 n +0000210709 00000 n +0000211871 00000 n +0000212580 00000 n +0000212732 00000 n +0000212946 00000 n +0000212427 00000 n +0000212046 00000 n +0000212885 00000 n +0000216306 00000 n +0000215997 00000 n +0000213046 00000 n +0000216120 00000 n +0000218704 00000 n +0000218458 00000 n +0000216446 00000 n +0000218581 00000 n +0000220539 00000 n +0000220700 00000 n +0000220985 00000 n +0000220386 00000 n +0000218857 00000 n +0000220861 00000 n +0000223949 00000 n +0000224290 00000 n +0000223805 00000 n +0000221098 00000 n +0000224104 00000 n +0000224227 00000 n +0000790046 00000 n +0000227604 00000 n +0000227295 00000 n +0000224457 00000 n +0000227418 00000 n +0000229624 00000 n +0000229777 00000 n +0000230114 00000 n +0000229471 00000 n +0000227757 00000 n +0000229930 00000 n +0000232404 00000 n +0000232157 00000 n +0000230241 00000 n +0000232280 00000 n +0000234634 00000 n +0000234927 00000 n +0000234490 00000 n +0000232531 00000 n +0000234804 00000 n +0000237067 00000 n +0000236820 00000 n +0000235040 00000 n +0000236943 00000 n +0000239569 00000 n +0000239261 00000 n +0000237180 00000 n +0000239384 00000 n +0000790171 00000 n +0000245483 00000 n +0000245298 00000 n +0000239709 00000 n +0000245421 00000 n +0000248244 00000 n +0000248060 00000 n +0000245636 00000 n +0000248183 00000 n +0000250320 00000 n +0000250135 00000 n +0000248357 00000 n +0000250258 00000 n +0000252603 00000 n +0000252357 00000 n +0000250473 00000 n +0000252480 00000 n +0000255025 00000 n +0000254778 00000 n +0000252730 00000 n +0000254901 00000 n +0000258475 00000 n +0000258045 00000 n +0000255179 00000 n +0000258168 00000 n +0000790296 00000 n +0000260740 00000 n +0000261035 00000 n +0000260596 00000 n +0000258642 00000 n +0000260911 00000 n +0000263079 00000 n +0000262833 00000 n +0000261162 00000 n +0000262956 00000 n +0000264490 00000 n +0000264244 00000 n +0000263207 00000 n +0000264367 00000 n +0000266061 00000 n +0000265877 00000 n +0000264618 00000 n +0000266000 00000 n +0000268082 00000 n +0000267837 00000 n +0000266161 00000 n +0000267960 00000 n +0000270503 00000 n +0000270319 00000 n +0000268196 00000 n +0000270442 00000 n +0000790421 00000 n +0000272513 00000 n +0000272267 00000 n +0000270616 00000 n +0000272390 00000 n +0000277124 00000 n +0000276816 00000 n +0000272640 00000 n +0000276939 00000 n +0000279375 00000 n +0000279190 00000 n +0000277277 00000 n +0000279313 00000 n +0000281248 00000 n +0000281002 00000 n +0000279475 00000 n +0000281125 00000 n +0000283251 00000 n +0000283004 00000 n +0000281362 00000 n +0000283127 00000 n +0000286274 00000 n +0000285716 00000 n +0000283365 00000 n +0000285839 00000 n +0000286024 00000 n +0000286086 00000 n +0000286149 00000 n +0000790546 00000 n +0000287576 00000 n +0000287391 00000 n +0000286402 00000 n +0000287514 00000 n +0000289863 00000 n +0000289555 00000 n +0000287676 00000 n +0000289678 00000 n +0000290770 00000 n +0000290585 00000 n +0000289976 00000 n +0000290708 00000 n +0000293729 00000 n +0000294132 00000 n +0000293585 00000 n +0000290870 00000 n +0000293884 00000 n +0000294069 00000 n +0000296172 00000 n +0000295925 00000 n +0000294300 00000 n +0000296048 00000 n +0000297637 00000 n +0000297391 00000 n +0000296312 00000 n +0000297514 00000 n +0000790671 00000 n +0000299878 00000 n +0000299631 00000 n +0000297750 00000 n +0000299754 00000 n +0000301417 00000 n +0000301233 00000 n +0000299991 00000 n +0000301356 00000 n +0000303917 00000 n +0000304335 00000 n +0000303773 00000 n +0000301517 00000 n +0000304087 00000 n +0000305573 00000 n +0000305389 00000 n +0000304448 00000 n +0000305512 00000 n +0000308788 00000 n +0000308292 00000 n +0000305673 00000 n +0000308415 00000 n +0000308601 00000 n +0000308664 00000 n +0000311549 00000 n +0000311302 00000 n +0000308928 00000 n +0000311425 00000 n +0000311486 00000 n +0000790796 00000 n +0000314232 00000 n +0000313796 00000 n +0000311689 00000 n +0000313919 00000 n +0000313981 00000 n +0000314044 00000 n +0000314107 00000 n +0000315984 00000 n +0000315738 00000 n +0000314399 00000 n +0000315861 00000 n +0000316903 00000 n +0000316718 00000 n +0000316097 00000 n +0000316841 00000 n +0000318045 00000 n +0000317861 00000 n +0000317003 00000 n +0000317984 00000 n +0000319548 00000 n +0000319301 00000 n +0000318145 00000 n +0000319424 00000 n +0000320971 00000 n +0000320661 00000 n +0000319661 00000 n +0000320784 00000 n +0000320845 00000 n +0000320908 00000 n +0000790921 00000 n +0000321848 00000 n +0000321600 00000 n +0000321071 00000 n +0000321723 00000 n +0000321785 00000 n +0000324266 00000 n +0000324796 00000 n +0000324122 00000 n +0000321934 00000 n +0000324421 00000 n +0000324606 00000 n +0000324669 00000 n +0000324732 00000 n +0000328098 00000 n +0000327913 00000 n +0000324936 00000 n +0000328036 00000 n +0000330019 00000 n +0000329773 00000 n +0000328252 00000 n +0000329896 00000 n +0000331141 00000 n +0000330956 00000 n +0000330132 00000 n +0000331079 00000 n +0000331809 00000 n +0000331625 00000 n +0000331241 00000 n +0000331748 00000 n +0000791046 00000 n +0000334893 00000 n +0000334584 00000 n +0000331909 00000 n +0000334707 00000 n +0000336978 00000 n +0000336732 00000 n +0000335033 00000 n +0000336855 00000 n +0000338755 00000 n +0000338508 00000 n +0000337105 00000 n +0000338631 00000 n +0000340722 00000 n +0000340414 00000 n +0000338882 00000 n +0000340537 00000 n +0000341822 00000 n +0000341637 00000 n +0000340835 00000 n +0000341760 00000 n +0000343278 00000 n +0000343094 00000 n +0000341922 00000 n +0000343217 00000 n +0000791171 00000 n +0000345379 00000 n +0000345008 00000 n +0000343378 00000 n +0000345131 00000 n +0000350495 00000 n +0000350311 00000 n +0000345479 00000 n +0000350434 00000 n +0000353645 00000 n +0000353398 00000 n +0000350635 00000 n +0000353521 00000 n +0000355089 00000 n +0000354905 00000 n +0000353758 00000 n +0000355028 00000 n +0000356909 00000 n +0000356536 00000 n +0000355189 00000 n +0000356659 00000 n +0000356783 00000 n +0000356846 00000 n +0000360751 00000 n +0000360506 00000 n +0000357022 00000 n +0000360629 00000 n +0000791296 00000 n +0000363736 00000 n +0000363301 00000 n +0000360918 00000 n +0000363424 00000 n +0000363548 00000 n +0000363611 00000 n +0000363674 00000 n +0000366749 00000 n +0000366503 00000 n +0000363889 00000 n +0000366626 00000 n +0000369847 00000 n +0000369350 00000 n +0000366902 00000 n +0000369473 00000 n +0000787259 00000 n +0000369659 00000 n +0000369722 00000 n +0000371120 00000 n +0000370936 00000 n +0000369974 00000 n +0000371059 00000 n +0000373354 00000 n +0000373821 00000 n +0000373210 00000 n +0000371220 00000 n +0000373507 00000 n +0000373695 00000 n +0000373758 00000 n +0000376365 00000 n +0000376119 00000 n +0000373935 00000 n +0000376242 00000 n +0000791421 00000 n +0000380298 00000 n +0000380051 00000 n +0000376518 00000 n +0000380174 00000 n +0000382526 00000 n +0000382216 00000 n +0000380451 00000 n +0000382339 00000 n +0000382400 00000 n +0000382463 00000 n +0000385606 00000 n +0000385360 00000 n +0000382626 00000 n +0000385483 00000 n +0000388081 00000 n +0000387773 00000 n +0000385759 00000 n +0000387896 00000 n +0000389850 00000 n +0000389541 00000 n +0000388234 00000 n +0000389664 00000 n +0000394393 00000 n +0000394546 00000 n +0000392350 00000 n +0000392104 00000 n +0000389963 00000 n +0000392227 00000 n +0000791546 00000 n +0000394699 00000 n +0000395167 00000 n +0000394231 00000 n +0000392503 00000 n +0000394853 00000 n +0000397306 00000 n +0000397771 00000 n +0000397162 00000 n +0000395281 00000 n +0000397459 00000 n +0000399744 00000 n +0000400086 00000 n +0000399600 00000 n +0000397898 00000 n +0000399898 00000 n +0000786532 00000 n +0000401559 00000 n +0000401833 00000 n +0000401415 00000 n +0000400227 00000 n +0000401710 00000 n +0000404055 00000 n +0000404647 00000 n +0000403911 00000 n +0000401947 00000 n +0000404208 00000 n +0000404334 00000 n +0000404397 00000 n +0000404459 00000 n +0000406149 00000 n +0000405965 00000 n +0000404774 00000 n +0000406088 00000 n +0000791671 00000 n +0000407361 00000 n +0000407176 00000 n +0000406249 00000 n +0000407299 00000 n +0000409603 00000 n +0000409756 00000 n +0000410157 00000 n +0000409450 00000 n +0000407461 00000 n +0000409910 00000 n +0000412888 00000 n +0000413229 00000 n +0000412744 00000 n +0000410311 00000 n +0000413041 00000 n +0000416434 00000 n +0000415999 00000 n +0000413396 00000 n +0000416122 00000 n +0000416245 00000 n +0000416308 00000 n +0000416371 00000 n +0000419205 00000 n +0000418896 00000 n +0000416601 00000 n +0000419019 00000 n +0000422891 00000 n +0000422645 00000 n +0000419358 00000 n +0000422768 00000 n +0000791796 00000 n +0000424612 00000 n +0000424365 00000 n +0000423058 00000 n +0000424488 00000 n +0000426922 00000 n +0000426738 00000 n +0000424753 00000 n +0000426861 00000 n +0000430113 00000 n +0000429740 00000 n +0000427076 00000 n +0000429863 00000 n +0000429987 00000 n +0000430050 00000 n +0000433674 00000 n +0000433113 00000 n +0000430280 00000 n +0000433236 00000 n +0000433359 00000 n +0000433422 00000 n +0000433485 00000 n +0000433548 00000 n +0000433611 00000 n +0000434984 00000 n +0000434799 00000 n +0000433841 00000 n +0000434922 00000 n +0000436542 00000 n +0000436358 00000 n +0000435084 00000 n +0000436481 00000 n +0000791921 00000 n +0000438512 00000 n +0000438327 00000 n +0000436642 00000 n +0000438450 00000 n +0000440024 00000 n +0000439840 00000 n +0000438652 00000 n +0000439963 00000 n +0000441420 00000 n +0000441235 00000 n +0000440124 00000 n +0000441358 00000 n +0000442524 00000 n +0000442340 00000 n +0000441520 00000 n +0000442463 00000 n +0000445475 00000 n +0000445167 00000 n +0000442624 00000 n +0000445290 00000 n +0000448216 00000 n +0000447970 00000 n +0000445656 00000 n +0000448093 00000 n +0000792046 00000 n +0000449960 00000 n +0000449775 00000 n +0000448397 00000 n +0000449898 00000 n +0000452739 00000 n +0000452892 00000 n +0000453046 00000 n +0000453217 00000 n +0000453570 00000 n +0000452568 00000 n +0000450087 00000 n +0000453387 00000 n +0000456201 00000 n +0000456356 00000 n +0000456696 00000 n +0000456048 00000 n +0000453723 00000 n +0000456511 00000 n +0000459584 00000 n +0000459276 00000 n +0000456850 00000 n +0000459399 00000 n +0000462800 00000 n +0000462491 00000 n +0000459737 00000 n +0000462614 00000 n +0000465789 00000 n +0000465950 00000 n +0000466233 00000 n +0000465636 00000 n +0000462953 00000 n +0000466110 00000 n +0000792171 00000 n +0000468898 00000 n +0000469059 00000 n +0000469344 00000 n +0000468745 00000 n +0000466400 00000 n +0000469220 00000 n +0000473256 00000 n +0000473010 00000 n +0000469497 00000 n +0000473133 00000 n +0000475400 00000 n +0000475560 00000 n +0000475720 00000 n +0000475880 00000 n +0000476164 00000 n +0000475229 00000 n +0000473423 00000 n +0000476040 00000 n +0000478193 00000 n +0000477947 00000 n +0000476292 00000 n +0000478070 00000 n +0000479628 00000 n +0000479443 00000 n +0000478307 00000 n +0000479566 00000 n +0000481893 00000 n +0000481648 00000 n +0000479728 00000 n +0000481771 00000 n +0000792296 00000 n +0000483891 00000 n +0000483644 00000 n +0000482006 00000 n +0000483767 00000 n +0000486706 00000 n +0000486460 00000 n +0000484004 00000 n +0000486583 00000 n +0000490160 00000 n +0000490685 00000 n +0000490007 00000 n +0000486859 00000 n +0000490499 00000 n +0000490330 00000 n +0000492763 00000 n +0000492924 00000 n +0000493271 00000 n +0000492610 00000 n +0000490838 00000 n +0000493086 00000 n +0000496417 00000 n +0000496572 00000 n +0000499388 00000 n +0000497179 00000 n +0000496264 00000 n +0000493398 00000 n +0000496742 00000 n +0000496928 00000 n +0000496991 00000 n +0000497054 00000 n +0000499866 00000 n +0000499244 00000 n +0000497320 00000 n +0000499559 00000 n +0000792421 00000 n +0000501366 00000 n +0000501119 00000 n +0000499980 00000 n +0000501242 00000 n +0000503675 00000 n +0000503846 00000 n +0000504201 00000 n +0000503522 00000 n +0000501480 00000 n +0000504016 00000 n +0000506473 00000 n +0000506643 00000 n +0000507245 00000 n +0000506320 00000 n +0000504342 00000 n +0000506812 00000 n +0000508430 00000 n +0000508769 00000 n +0000508286 00000 n +0000507359 00000 n +0000508583 00000 n +0000511733 00000 n +0000511362 00000 n +0000508882 00000 n +0000511485 00000 n +0000514699 00000 n +0000514453 00000 n +0000511859 00000 n +0000514576 00000 n +0000792546 00000 n +0000516527 00000 n +0000516342 00000 n +0000514852 00000 n +0000516465 00000 n +0000518446 00000 n +0000518262 00000 n +0000516654 00000 n +0000518385 00000 n +0000519607 00000 n +0000519422 00000 n +0000518559 00000 n +0000519545 00000 n +0000521414 00000 n +0000521168 00000 n +0000519707 00000 n +0000521291 00000 n +0000523879 00000 n +0000523632 00000 n +0000521527 00000 n +0000523755 00000 n +0000525642 00000 n +0000525396 00000 n +0000524033 00000 n +0000525519 00000 n +0000792671 00000 n +0000526636 00000 n +0000526451 00000 n +0000525755 00000 n +0000526574 00000 n +0000529792 00000 n +0000529484 00000 n +0000526736 00000 n +0000529607 00000 n +0000534086 00000 n +0000533650 00000 n +0000529932 00000 n +0000533773 00000 n +0000533835 00000 n +0000533898 00000 n +0000533961 00000 n +0000536629 00000 n +0000536445 00000 n +0000534239 00000 n +0000536568 00000 n +0000539366 00000 n +0000539119 00000 n +0000536769 00000 n +0000539242 00000 n +0000542071 00000 n +0000541825 00000 n +0000539506 00000 n +0000541948 00000 n +0000792796 00000 n +0000546003 00000 n +0000545695 00000 n +0000542224 00000 n +0000545818 00000 n +0000548738 00000 n +0000547927 00000 n +0000546156 00000 n +0000548050 00000 n +0000548173 00000 n +0000548236 00000 n +0000548299 00000 n +0000548424 00000 n +0000548487 00000 n +0000548550 00000 n +0000548613 00000 n +0000551546 00000 n +0000551299 00000 n +0000548879 00000 n +0000551422 00000 n +0000552614 00000 n +0000552430 00000 n +0000551699 00000 n +0000552553 00000 n +0000557367 00000 n +0000557523 00000 n +0000555423 00000 n +0000555114 00000 n +0000552714 00000 n +0000555237 00000 n +0000557679 00000 n +0000557835 00000 n +0000558052 00000 n +0000557196 00000 n +0000555577 00000 n +0000557991 00000 n +0000792921 00000 n +0000562073 00000 n +0000561826 00000 n +0000558178 00000 n +0000561949 00000 n +0000564537 00000 n +0000564291 00000 n +0000562226 00000 n +0000564414 00000 n +0000567118 00000 n +0000566809 00000 n +0000564690 00000 n +0000566932 00000 n +0000568634 00000 n +0000569221 00000 n +0000568481 00000 n +0000567258 00000 n +0000568974 00000 n +0000568805 00000 n +0000571568 00000 n +0000571718 00000 n +0000571870 00000 n +0000572021 00000 n +0000572172 00000 n +0000572323 00000 n +0000572474 00000 n +0000572625 00000 n +0000572776 00000 n +0000572928 00000 n +0000573079 00000 n +0000573231 00000 n +0000573381 00000 n +0000573532 00000 n +0000573683 00000 n +0000573835 00000 n +0000573987 00000 n +0000574139 00000 n +0000574291 00000 n +0000574442 00000 n +0000574594 00000 n +0000574746 00000 n +0000574897 00000 n +0000575048 00000 n +0000575199 00000 n +0000575351 00000 n +0000575502 00000 n +0000575652 00000 n +0000575803 00000 n +0000575954 00000 n +0000576105 00000 n +0000576256 00000 n +0000576407 00000 n +0000576558 00000 n +0000576709 00000 n +0000576860 00000 n +0000577011 00000 n +0000577162 00000 n +0000577313 00000 n +0000577463 00000 n +0000577614 00000 n +0000577766 00000 n +0000577917 00000 n +0000578068 00000 n +0000578219 00000 n +0000578369 00000 n +0000578519 00000 n +0000578670 00000 n +0000578820 00000 n +0000578970 00000 n +0000579120 00000 n +0000579272 00000 n +0000579424 00000 n +0000579574 00000 n +0000579726 00000 n +0000579878 00000 n +0000580028 00000 n +0000580177 00000 n +0000580327 00000 n +0000580478 00000 n +0000580630 00000 n +0000580781 00000 n +0000580933 00000 n +0000581084 00000 n +0000581236 00000 n +0000581388 00000 n +0000581540 00000 n +0000581691 00000 n +0000581843 00000 n +0000581995 00000 n +0000582146 00000 n +0000582298 00000 n +0000582448 00000 n +0000582598 00000 n +0000582748 00000 n +0000582900 00000 n +0000583052 00000 n +0000583204 00000 n +0000583356 00000 n +0000583508 00000 n +0000583660 00000 n +0000583812 00000 n +0000583963 00000 n +0000584115 00000 n +0000584267 00000 n +0000584419 00000 n +0000584571 00000 n +0000584723 00000 n +0000584875 00000 n +0000585027 00000 n +0000585179 00000 n +0000585330 00000 n +0000585481 00000 n +0000585632 00000 n +0000585783 00000 n +0000585933 00000 n +0000586084 00000 n +0000586235 00000 n +0000586385 00000 n +0000586536 00000 n +0000586687 00000 n +0000586838 00000 n +0000586989 00000 n +0000587140 00000 n +0000587290 00000 n +0000587441 00000 n +0000587592 00000 n +0000587743 00000 n +0000587894 00000 n +0000588045 00000 n +0000588197 00000 n +0000591141 00000 n +0000591292 00000 n +0000588408 00000 n +0000570434 00000 n +0000569321 00000 n +0000588346 00000 n +0000591444 00000 n +0000591596 00000 n +0000591747 00000 n +0000591898 00000 n +0000592049 00000 n +0000592200 00000 n +0000592351 00000 n +0000592502 00000 n +0000592653 00000 n +0000592803 00000 n +0000592952 00000 n +0000593102 00000 n +0000593253 00000 n +0000593404 00000 n +0000593555 00000 n +0000593704 00000 n +0000593855 00000 n +0000594005 00000 n +0000594157 00000 n +0000594308 00000 n +0000594460 00000 n +0000594611 00000 n +0000594763 00000 n +0000594914 00000 n +0000595066 00000 n +0000595218 00000 n +0000595369 00000 n +0000595521 00000 n +0000595672 00000 n +0000595823 00000 n +0000595974 00000 n +0000596126 00000 n +0000596278 00000 n +0000596430 00000 n +0000596582 00000 n +0000596734 00000 n +0000596886 00000 n +0000597036 00000 n +0000597187 00000 n +0000597338 00000 n +0000597488 00000 n +0000597639 00000 n +0000597789 00000 n +0000597940 00000 n +0000598091 00000 n +0000598242 00000 n +0000598394 00000 n +0000598546 00000 n +0000598697 00000 n +0000598848 00000 n +0000598999 00000 n +0000599149 00000 n +0000599301 00000 n +0000599452 00000 n +0000599604 00000 n +0000599756 00000 n +0000599908 00000 n +0000600060 00000 n +0000600212 00000 n +0000600363 00000 n +0000600515 00000 n +0000600665 00000 n +0000600814 00000 n +0000600966 00000 n +0000601118 00000 n +0000601269 00000 n +0000601421 00000 n +0000601571 00000 n +0000601723 00000 n +0000601875 00000 n +0000602025 00000 n +0000602175 00000 n +0000602325 00000 n +0000602475 00000 n +0000602624 00000 n +0000602774 00000 n +0000602926 00000 n +0000603077 00000 n +0000603228 00000 n +0000603380 00000 n +0000603532 00000 n +0000603684 00000 n +0000603836 00000 n +0000603988 00000 n +0000604139 00000 n +0000604291 00000 n +0000604443 00000 n +0000604595 00000 n +0000604745 00000 n +0000604896 00000 n +0000605042 00000 n +0000605192 00000 n +0000605342 00000 n +0000605493 00000 n +0000605643 00000 n +0000605794 00000 n +0000605945 00000 n +0000606097 00000 n +0000606249 00000 n +0000606401 00000 n +0000606551 00000 n +0000606701 00000 n +0000606852 00000 n +0000607002 00000 n +0000607153 00000 n +0000607304 00000 n +0000607455 00000 n +0000607606 00000 n +0000607757 00000 n +0000607908 00000 n +0000608058 00000 n +0000608210 00000 n +0000608361 00000 n +0000608511 00000 n +0000608661 00000 n +0000608813 00000 n +0000608964 00000 n +0000609114 00000 n +0000609265 00000 n +0000609416 00000 n +0000609567 00000 n +0000609718 00000 n +0000609869 00000 n +0000610021 00000 n +0000610171 00000 n +0000610322 00000 n +0000610473 00000 n +0000610624 00000 n +0000613623 00000 n +0000610834 00000 n +0000589836 00000 n +0000588494 00000 n +0000610773 00000 n +0000793046 00000 n +0000613774 00000 n +0000613926 00000 n +0000614078 00000 n +0000614229 00000 n +0000614380 00000 n +0000614531 00000 n +0000614682 00000 n +0000614832 00000 n +0000614983 00000 n +0000615135 00000 n +0000615287 00000 n +0000615439 00000 n +0000615590 00000 n +0000615742 00000 n +0000615892 00000 n +0000616043 00000 n +0000616194 00000 n +0000616344 00000 n +0000616495 00000 n +0000616645 00000 n +0000616797 00000 n +0000616948 00000 n +0000617100 00000 n +0000617252 00000 n +0000617404 00000 n +0000617556 00000 n +0000617708 00000 n +0000617859 00000 n +0000618011 00000 n +0000618163 00000 n +0000618314 00000 n +0000618466 00000 n +0000618617 00000 n +0000618768 00000 n +0000618919 00000 n +0000619070 00000 n +0000619221 00000 n +0000619372 00000 n +0000619524 00000 n +0000619675 00000 n +0000619827 00000 n +0000619978 00000 n +0000620130 00000 n +0000620281 00000 n +0000620432 00000 n +0000620580 00000 n +0000620730 00000 n +0000620881 00000 n +0000621032 00000 n +0000621182 00000 n +0000621333 00000 n +0000621484 00000 n +0000621635 00000 n +0000621786 00000 n +0000621937 00000 n +0000622088 00000 n +0000622237 00000 n +0000622389 00000 n +0000622541 00000 n +0000622692 00000 n +0000622843 00000 n +0000622994 00000 n +0000623146 00000 n +0000623298 00000 n +0000623449 00000 n +0000623600 00000 n +0000623752 00000 n +0000623902 00000 n +0000624053 00000 n +0000624204 00000 n +0000624355 00000 n +0000624506 00000 n +0000624657 00000 n +0000624808 00000 n +0000624958 00000 n +0000625110 00000 n +0000625260 00000 n +0000625412 00000 n +0000625562 00000 n +0000625713 00000 n +0000625863 00000 n +0000626013 00000 n +0000626163 00000 n +0000626314 00000 n +0000626465 00000 n +0000626616 00000 n +0000626767 00000 n +0000626918 00000 n +0000627068 00000 n +0000627219 00000 n +0000627371 00000 n +0000627521 00000 n +0000627672 00000 n +0000627823 00000 n +0000627974 00000 n +0000628124 00000 n +0000628275 00000 n +0000628426 00000 n +0000628577 00000 n +0000628728 00000 n +0000628879 00000 n +0000629030 00000 n +0000629181 00000 n +0000629332 00000 n +0000629483 00000 n +0000629635 00000 n +0000629787 00000 n +0000629938 00000 n +0000630089 00000 n +0000630239 00000 n +0000630390 00000 n +0000630540 00000 n +0000630690 00000 n +0000630840 00000 n +0000630988 00000 n +0000631138 00000 n +0000631288 00000 n +0000631438 00000 n +0000631589 00000 n +0000631740 00000 n +0000631890 00000 n +0000632040 00000 n +0000632191 00000 n +0000632342 00000 n +0000632493 00000 n +0000632644 00000 n +0000632795 00000 n +0000632946 00000 n +0000633097 00000 n +0000633249 00000 n +0000633400 00000 n +0000633551 00000 n +0000633702 00000 n +0000633915 00000 n +0000612282 00000 n +0000610920 00000 n +0000633853 00000 n +0000634001 00000 n +0000785984 00000 n +0000634037 00000 n +0000634353 00000 n +0000634427 00000 n +0000634503 00000 n +0000634975 00000 n +0000634999 00000 n +0000635133 00000 n +0000635698 00000 n +0000636164 00000 n +0000636368 00000 n +0000636846 00000 n +0000637757 00000 n +0000638329 00000 n +0000645472 00000 n +0000645707 00000 n +0000653373 00000 n +0000653602 00000 n +0000661153 00000 n +0000661388 00000 n +0000668496 00000 n +0000668725 00000 n +0000670818 00000 n +0000671047 00000 n +0000680210 00000 n +0000680492 00000 n +0000700782 00000 n +0000701430 00000 n +0000715808 00000 n +0000716381 00000 n +0000724298 00000 n +0000724660 00000 n +0000741093 00000 n +0000741501 00000 n +0000761934 00000 n +0000762504 00000 n +0000774898 00000 n +0000775258 00000 n +0000785687 00000 n +0000793135 00000 n +0000793260 00000 n +0000793386 00000 n +0000793512 00000 n +0000793638 00000 n +0000793764 00000 n +0000793890 00000 n +0000794000 00000 n +0000815025 00000 n +0000815219 00000 n +0000815396 00000 n +0000815572 00000 n +0000815749 00000 n +0000815925 00000 n +0000816102 00000 n +0000816278 00000 n +0000816455 00000 n +0000816631 00000 n +0000816808 00000 n +0000816983 00000 n +0000817158 00000 n +0000817335 00000 n +0000817511 00000 n +0000817692 00000 n +0000817885 00000 n +0000818077 00000 n +0000818263 00000 n +0000818445 00000 n +0000818630 00000 n +0000818814 00000 n +0000818999 00000 n +0000819182 00000 n +0000819365 00000 n +0000819550 00000 n +0000819734 00000 n +0000819919 00000 n +0000820103 00000 n +0000820288 00000 n +0000820472 00000 n +0000820657 00000 n +0000820841 00000 n +0000821026 00000 n +0000821209 00000 n +0000821392 00000 n +0000821577 00000 n +0000821757 00000 n +0000821942 00000 n +0000822126 00000 n +0000822305 00000 n +0000822481 00000 n +0000822658 00000 n +0000822834 00000 n +0000823011 00000 n +0000823187 00000 n +0000823364 00000 n +0000823539 00000 n +0000823714 00000 n +0000823891 00000 n +0000824067 00000 n +0000824244 00000 n +0000824420 00000 n +0000824597 00000 n +0000824789 00000 n +0000824991 00000 n +0000825185 00000 n +0000825382 00000 n +0000825590 00000 n +0000825802 00000 n +0000826013 00000 n +0000826224 00000 n +0000826436 00000 n +0000826647 00000 n +0000826858 00000 n +0000827069 00000 n +0000827280 00000 n +0000827482 00000 n +0000827685 00000 n +0000827888 00000 n +0000828091 00000 n +0000828294 00000 n +0000828497 00000 n +0000828700 00000 n +0000828916 00000 n +0000829162 00000 n +0000829413 00000 n +0000829664 00000 n +0000829915 00000 n +0000830169 00000 n +0000830428 00000 n +0000830681 00000 n +0000830932 00000 n +0000831178 00000 n +0000831421 00000 n +0000831664 00000 n +0000831907 00000 n +0000832150 00000 n +0000832393 00000 n +0000832605 00000 n +0000832804 00000 n +0000832976 00000 n +0000833094 00000 n +0000833209 00000 n +0000833327 00000 n +0000833445 00000 n +0000833563 00000 n +0000833681 00000 n +0000833798 00000 n +0000833913 00000 n +0000834033 00000 n +0000834158 00000 n +0000834284 00000 n +0000834409 00000 n +0000834539 00000 n +0000834674 00000 n +0000834801 00000 n +0000834876 00000 n +0000834995 00000 n +0000835116 00000 n +0000835220 00000 n +0000835313 00000 n +0000835353 00000 n +0000835505 00000 n +trailer +<< /Size 2763 +/Root 2761 0 R +/Info 2762 0 R +/ID [<1B41A7F5F35A81EE54C15D3E8B3E4AB7> <1B41A7F5F35A81EE54C15D3E8B3E4AB7>] >> +startxref +835935 +%%EOF diff --git a/bin/Lib/PABCExtensions.pas b/bin/Lib/PABCExtensions.pas index 1d2f47763..9f10563f6 100644 --- a/bin/Lib/PABCExtensions.pas +++ b/bin/Lib/PABCExtensions.pas @@ -5,6 +5,12 @@ unit PABCExtensions; uses PABCSystem; +//{{{doc: Начало секции подпрограмм для типизированных файлов для документации }}} + +// ----------------------------------------------------- +//>> Подпрограммы для работы с типизированными файлами # Subroutines for typed files +// ----------------------------------------------------- + /// Открывает типизированный файл и возвращает значение для инициализации файловой переменной function OpenBinary(fname: string): file of T; begin @@ -53,6 +59,19 @@ begin Result := CreateFile&(fname); end; +/// Открывает типизированный файл, возвращает последовательность его элементов и закрывает его +procedure WriteElements(fname: string; ss: sequence of T); +begin + var f := CreateBinary&(fname); + foreach var x in ss do + f.Write(x); + f.Close +end; + +// ----------------------------------------------------- +//>> Методы расширения типизированных файлов # Extension methods for typed files +// ----------------------------------------------------- + /// Устанавливает текущую позицию файлового указателя в типизированном файле на элемент с номером n function Seek(Self: file of T; n: int64): file of T; extensionmethod; begin @@ -107,15 +126,6 @@ begin f.Close end; -/// Открывает типизированный файл, возвращает последовательность его элементов и закрывает его -procedure WriteElements(fname: string; ss: sequence of T); -begin - var f := CreateBinary&(fname); - foreach var x in ss do - f.Write(x); - f.Close -end; - /// Записывает данные в типизированный файл procedure Write(Self: file of T; params vals: array of T); extensionmethod; begin @@ -123,6 +133,8 @@ begin PABCSystem.Write(Self, x); end; +//{{{--doc: Конец секции подпрограмм для типизированных файлов для документации }}} + //------------------------------------------------------------------------------ // Операции для procedure diff --git a/bin/Lib/PABCSystem.pas b/bin/Lib/PABCSystem.pas index a31d3c4d8..06e416a9b 100644 --- a/bin/Lib/PABCSystem.pas +++ b/bin/Lib/PABCSystem.pas @@ -249,7 +249,7 @@ type /// Представляет тип короткой строки фиксированной длины 255 символов ShortString = string[255]; - //{{{--doc: Конец секции стандартных типов для документации }}} +//{{{--doc: Конец секции стандартных типов для документации }}} //------------------------------------------------------------------------------ //Pointers @@ -1854,15 +1854,14 @@ function Dict(params pairs: array of (TKey, TVal)): Dictionary(key: TKey; value: TVal): KeyValuePair; +//{{{--doc: Конец секции интерфейса для документации }}} + // ----------------------------------------------------- -//>> Вспомогательные функции для pattern matching +//>> Вспомогательные функции для pattern matching # // ----------------------------------------------------- function __TypeCheckAndAssignForIsMatch(obj: object; var res: T): boolean; -//{{{--doc: Конец секции интерфейса для документации }}} - - // ----------------------------------------------------- // Стандартные классы исключений // ----------------------------------------------------- @@ -10028,6 +10027,7 @@ begin Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a); end; +/// Возвращает True если значение находится между двумя другими function InRange(Self: real; a,b: real): boolean; extensionmethod; begin Result := (a <= Self) and (Self <= b) or (b <= Self) and (Self <= a); diff --git a/bin/PascalABCNET.chm b/bin/PascalABCNET.chm index 093739d50..fe459cdc0 100644 Binary files a/bin/PascalABCNET.chm and b/bin/PascalABCNET.chm differ